使用 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;
}