外部リンクの範囲を取得する(C++編)
Contents
[
Hide
]
外部リンク付きの範囲を取得する
多くの場合、Excelファイルは他のExcelファイルの外部リンクを通じてデータにアクセスしています。Aspose.Cellsは、Name.GetReferredAreasメソッドを使ってこれらの外部リンクを取得できます。Name.GetReferredAreasメソッドはReferredAreaタイプの配列を返します。ReferredAreaクラスは外部ファイルの名前を返すGetExternalFileName()プロパティを持ちます。ReferredAreaクラスは以下のメンバーを公開しています。
- GetEndColumn(): 範囲の終了列
- GetEndRow(): 範囲の終了行
- GetExternalFileName(): これが外部参照の場合、外部ファイル名を取得します
- IsArea: これはエリアであるかどうかを示します
- IsExternalLink: これは外部リンクであるかどうかを示します
- GetSheetName(): この参照が含まれるシートを示します
- GetStartColumn(): エリアの開始列
- GetStartRow(): エリアの開始行
以下に示すサンプルコードは、外部リンクを含む範囲を取得するためのName.GetReferredAreasメソッドの使用例です。
サンプルコード
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
Workbook workbook(srcDir + u"SampleExternalReferences.xlsx");
WorksheetCollection sheets = workbook.GetWorksheets();
NameCollection namedRanges = sheets.GetNames();
for (int i = 0; i < namedRanges.GetCount(); ++i)
{
Name namedRange = namedRanges.Get(i);
Vector<ReferredArea> referredAreas = namedRange.GetReferredAreas(true);
if (!referredAreas.IsNull())
{
for (int j = 0; j < referredAreas.GetLength(); ++j)
{
ReferredArea referredArea = referredAreas[j];
std::cout << "IsExternalLink: " << referredArea.IsExternalLink() << std::endl;
std::cout << "IsArea: " << referredArea.IsArea() << std::endl;
std::cout << "SheetName: " << referredArea.GetSheetName().ToUtf8() << std::endl;
std::cout << "ExternalFileName: " << referredArea.GetExternalFileName().ToUtf8() << std::endl;
std::cout << "StartColumn: " << referredArea.GetStartColumn() << std::endl;
std::cout << "StartRow: " << referredArea.GetStartRow() << std::endl;
std::cout << "EndColumn: " << referredArea.GetEndColumn() << std::endl;
std::cout << "EndRow: " << referredArea.GetEndRow() << std::endl;
}
}
}
Aspose::Cells::Cleanup();
return 0;
}