Получение диапазона с внешними связями с помощью C++

Получить диапазон с внешними ссылками

Во многих случаях файлы 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;
}