C++を使用してExcelファイルの読み込み中に警告を取得する方法

可能な使用シナリオ

読み込み中に壊れている可能性のあるExcelファイルも例外的にロードできる場合があります。そうした場合、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;
}

コンソール出力

提供されたサンプルエクセルファイルを使用して上記のコードを実行した際のコンソール出力は次のとおりです。

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