Получение предупреждений при загрузке файла Excel с помощью C++

Возможные сценарии использования

Иногда пользователь пытается загрузить книгу, которая немного повреждена, но всё ещё поддаётся загрузке. В таких случаях Aspose.Cells выводит предупреждения при загрузке книги. Вы можете поймать эти предупреждения, реализовав интерфейс IWarningCallback и установив свойство LoadOptions.GetWarningCallback().

Получение предупреждений при загрузке файла Excel

Следующий пример кода показывает, как получать предупреждения при загрузке файла Excel. Код загружает образец файла Excel, на который при загрузке выводится предупреждение DuplicateDefinedName. Это предупреждение перехватывается методом IWarningCallback.Warning(), который выводит сообщения в консоль. Затем книга сохраняется как выходной файл Excel. Если открыть исходный файл в Microsoft Excel, тоже появится это предупреждение, как показано на скриншоте ниже. Также проверьте вывод в консоли из кода для более полного понимания.

todo:image_alt_text

Образец кода

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

class WarningCallback : public IWarningCallback {
public:
    void Warning(WarningInfo& warningInfo) override {
        if (warningInfo.GetType() == ExceptionType::DefinedName) {
            std::cout << "Defined Name Warning: " << warningInfo.GetDescription().ToUtf8() << std::endl;
        }
    }
};

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

    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    LoadOptions options;
    WarningCallback callback;
    options.SetWarningCallback(&callback);

    U16String inputFilePath = srcDir + u"sampleDuplicateDefinedName.xlsx";
    Workbook book(inputFilePath, options);

    U16String outputFilePath = outDir + u"outputDuplicateDefinedName.xlsx";
    book.Save(outputFilePath);

    std::cout << "Workbook saved successfully with warning handling!" << std::endl;

    Aspose::Cells::Cleanup();
    return 0;
}

Вывод в консоль

Ниже приведен вывод консольного вывода вышеуказанного кода при выполнении с предоставленным образцом файла Excel.

Duplicate Defined Name Warning: Name:PRINT_AREA;ReferTo:Introduction!$D$16:$D$17

Duplicate Defined Name Warning: Name:PRINT_AREA;ReferTo:Panel!$B$228

Duplicate Defined Name Warning: Name:PRINT_AREA;ReferTo:'Queries '!$D$14:$D$16