C++を使用してExcelファイルの読み込み中に警告を取得する方法
可能な使用シナリオ
読み込み中に壊れている可能性のあるExcelファイルも例外的にロードできる場合があります。そうした場合、Aspose.Cellsは警告を出します。これらの警告は IWarningCallbackインターフェースを実装し、LoadOptions.GetWarningCallback()プロパティを設定することで捕捉可能です。
Excelファイルの読み込み中に警告を受け取る
Excelファイルをロード中に警告を取得するサンプルコード例。サンプルはサンプルExcelファイルを読み込み、ロード時に警告(DuplicateDefinedName)を出します。その警告はIWarningCallback.Warning()メソッドで捕捉され、コンソールに警告メッセージを出力します。さらに、この例は結果のファイルも保存し、出力Excelファイルとして保存します。Microsoft Excelで開いた場合も同様の警告が表示されます。以下のコードのコンソール出力も確認してください。
サンプルコード
#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