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();
}

Sujets avancés