Ajouter des parties XML personnalisées et les sélectionner par ID avec C++

Scénarios d’utilisation possibles

Les parties XML personnalisées sont des données XML stockées à l’intérieur des documents Microsoft Excel et sont utilisées par des applications qui interagissent avec elles. Il n’existe actuellement aucun moyen direct de les ajouter via l’UI de Microsoft Excel. Cependant, vous pouvez les ajouter de manière programmatique de plusieurs façons, comme en utilisant VSTO ou Aspose.Cells. Utilisez la méthode Workbook.CustomXmlParts.Add() pour ajouter une partie XML personnalisée via l’API Aspose.Cells. Vous pouvez également définir son ID en utilisant la propriété CustomXmlPart.GetID(). De même, si vous souhaitez sélectionner une partie XML personnalisée par ID, vous pouvez utiliser la méthode Workbook.CustomXmlParts.SelectByID().

Ajouter des parties XML personnalisées et les sélectionner par ID

Le code exemple suivant ajoute d’abord quatre parties XML personnalisées en utilisant la méthode Workbook.CustomXmlParts.Add(). Ensuite, il définit leurs IDs en utilisant la propriété CustomXmlPart.GetID(). Enfin, il trouve ou sélectionne l’une des parties XML ajoutées en utilisant la méthode Workbook.CustomXmlParts.SelectByID(). Veuillez également consulter la sortie de la console ci-dessous pour référence.

Code d’exemple

#include <iostream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;
using namespace Aspose::Cells::Markup;

int main()
{
    Aspose::Cells::Startup();

    // Create empty workbook
    Workbook wb;

    // Some data in the form of byte array
    // Please use correct XML and Schema instead
    Vector<uint8_t> btsData = { 1, 2, 3 };
    Vector<uint8_t> btsSchema = { 1, 2, 3 };

    // Create four custom xml parts
    wb.GetCustomXmlParts().Add(btsData, btsSchema);
    wb.GetCustomXmlParts().Add(btsData, btsSchema);
    wb.GetCustomXmlParts().Add(btsData, btsSchema);
    wb.GetCustomXmlParts().Add(btsData, btsSchema);

    // Assign ids to custom xml parts
    wb.GetCustomXmlParts().Get(0).SetID(u"Fruit");
    wb.GetCustomXmlParts().Get(1).SetID(u"Color");
    wb.GetCustomXmlParts().Get(2).SetID(u"Sport");
    wb.GetCustomXmlParts().Get(3).SetID(u"Shape");

    // Specify search custom xml part id
    U16String srchID = u"Fruit";
    srchID = u"Color";
    srchID = u"Sport";

    // Search custom xml part by the search id
    CustomXmlPart cxp = wb.GetCustomXmlParts().SelectByID(srchID);

    // Print the found or not found message on console
    if (cxp.IsNull())
    {
        std::cout << "Not Found: CustomXmlPart ID " << srchID.ToUtf8() << std::endl;
    }
    else
    {
        std::cout << "Found: CustomXmlPart ID " << srchID.ToUtf8() << std::endl;
    }

    std::cout << "AddCustomXMLPartsAndSelectThemByID executed successfully." << std::endl;

    Aspose::Cells::Cleanup();
}

Sortie console

Found: CustomXmlPart ID Sport