Insérer des hyperliens dans Excel ou OpenOffice avec C++
Ajout de liens hypertexte
Aspose.Cells permet aux développeurs d’ajouter des hyperliens aux fichiers Excel soit via l’API, soit en utilisant des feuilles de calcul de conception (feuilles où les hyperliens sont créés manuellement et Aspose.Cells est utilisé pour les importer dans d’autres feuilles).
Aspose.Cells fournit une classe, Workbook qui représente un fichier Microsoft Excel. La classe Workbook contient une WorksheetCollection permettant d’accéder à chacune des feuilles de calcul du fichier Excel. Une feuille est représentée par la classe Worksheet. La classe Worksheet offre différentes méthodes pour ajouter différents hyperliens dans les fichiers Excel.
Ajout de lien vers une URL
La classe Worksheet contient une collection GetHyperlinks(). Chaque élément de cette collection représente un Hyperlink. Ajoutez des hyperliens vers des URL en appelant la méthode Add de la collection Hyperlinks. La méthode Add prend les paramètres suivants :
- Nom de la cellule, le nom de la cellule à laquelle le lien hypertexte sera ajouté.
- Nombre de lignes, le nombre de lignes dans cette plage de liens hypertexte.
- Nombre de colonnes, le nombre de colonnes dans cette plage de liens hypertexte.
- URL, l’adresse URL.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of output excel file
U16String outputFilePath = outDir + u"output.out.xls";
// Create a new workbook
Workbook workbook;
// Get the first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Add a hyperlink to cell "A1"
worksheet.GetHyperlinks().Add(u"A1", 1, 1, u"http://www.aspose.com");
// Save the workbook
workbook.Save(outputFilePath);
std::cout << "Hyperlink added successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Ajouter un lien vers une cellule dans le même fichier
Il est possible d’ajouter des hyperliens dans des cellules du même fichier Excel en appelant la méthode Add de la collection Hyperlinks. La méthode Add fonctionne pour les hyperliens internes et externes. Une version de la méthode surchargee prend les paramètres suivants :
- Nom de la cellule, le nom de la cellule à laquelle le lien hypertexte sera ajouté.
- Nombre de lignes, le nombre de lignes dans cette plage de liens hypertexte.
- Nombre de colonnes, le nombre de colonnes dans cette plage de liens hypertexte.
- URL, l’adresse de la cellule cible.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Instantiating a Workbook object
Workbook workbook;
// Adding a new worksheet to the Workbook object
workbook.GetWorksheets().Add();
// Obtaining the reference of the first (default) worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Adding an internal hyperlink to the "B9" cell of the other worksheet "Sheet2" in
// The same Excel file
worksheet.GetHyperlinks().Add(u"B3", 1, 1, u"Sheet2!B9");
// Saving the Excel file
workbook.Save(outDir + u"output.out.xls");
std::cout << "Hyperlink added successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Ajouter un lien vers un fichier externe
Il est possible d’ajouter des hyperliens vers des fichiers Excel externes en appelant la méthode Add de la collection Hyperlinks. La méthode Add prend les paramètres suivants :
- Nom de la cellule, le nom de la cellule à laquelle le lien hypertexte sera ajouté.
- Nombre de lignes, le nombre de lignes dans cette plage de liens hypertexte.
- Nombre de colonnes, le nombre de colonnes dans cette plage de liens hypertexte.
- URL, l’adresse de la cible, fichier Excel externe.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create a new workbook
Workbook workbook;
// Add a new worksheet to the workbook
int i = workbook.GetWorksheets().Add();
// Get the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.GetWorksheets().Get(i);
// Add an internal hyperlink to the "A5" cell of the other worksheet "Sheet2" in the same Excel file
worksheet.GetHyperlinks().Add(U16String(u"A5"), 1, 1, srcDir + U16String(u"book1.xls"));
// Save the Excel file
workbook.Save(outDir + U16String(u"output.out.xls"));
std::cout << "Hyperlink added successfully!" << std::endl;
Aspose::Cells::Cleanup();
}