C++でAspose.CellsにカスタムXMLパーツを使用する
Aspose.Cells でカスタムXMLパーツを使用する
カスタムXMLパーツは、SharePointなどのさまざまなアプリケーションによってExcelファイル内に格納されるXMLデータです。このデータは、それを必要とするさまざまなアプリケーションによって消費されます。Microsoft Excelはこのデータを使用しないため、GUIから追加する仕組みはありません。このデータは、.xlsxの拡張子を**.zip**に変更して開くか、またはサードパーティのWindows圧縮ユーティリティ(WinRARやWinZipなど)を使用してZIPファイルとして開くことで閲覧可能です。このデータは**customXml**フォルダ内にあります。
Aspose.Cellsの Workbook.ContentTypeProperties.Add() メソッドを使ってカスタムXMLパーツを追加可能。
以下のサンプルコードは、Workbook.ContentTypeProperties.Add()メソッドを使用して「Book Catalog XML」を追加し、その名前を「BookStore」にする例です。このコードの結果を示す画像は以下の通りです。ご覧の通り、「Book Catalog XML」は、「BookStore」ノード内に追加されました。これはこのプロパティの名前です。
C++によるカスタムXMLパーツの使用コード
#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\\");
// The sample XML that will be injected to Workbook
U16String booksXML = uR"(<catalog>
<book>
<title>Complete C#</title>
<price>44</price>
</book>
<book>
<title>Complete Java</title>
<price>76</price>
</book>
<book>
<title>Complete SharePoint</title>
<price>55</price>
</book>
<book>
<title>Complete PHP</title>
<price>63</price>
</book>
<book>
<title>Complete VB.NET</title>
<price>72</price>
</book>
</catalog>)";
// Create an instance of Workbook class
Workbook workbook;
// Add Custom XML Part to ContentTypePropertyCollection
workbook.GetContentTypeProperties().Add(u"BookStore", booksXML);
// Save the resultant spreadsheet
workbook.Save(outDir + u"output.xlsx");
std::cout << "Custom XML part added and workbook saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}