Node.jsとC++を利用したExcelファイル読み込み時の警告取得方法

可能な使用シナリオ

時には、ある程度破損しているが読み込めるワークブックを読み込もうとするユーザーもいます。そのような場合、Aspose.Cellsは読み込み時に警告をスローします。これらの警告は、IWarningCallbackインターフェースを実装し、LoadOptions.getWarningCallback()プロパティを設定することでキャッチできます。

Excelファイルの読み込み中に警告を受け取る

以下のサンプルコードは、読み込み時に警告を取得する例です。サンプルExcelファイル(sampleDuplicateDefinedName.xlsx)を読み込むと、DuplicateDefinedName警告がスローされます。この警告は、IWarningCallback.warning(WarningInfo)メソッドによって捕捉され、警告メッセージがコンソールに出力されます。その後、ワークブックは出力Excelファイルとして保存されます。Microsoft Excelでファイルを開くと、スクリーンショットのようにこの警告も表示されます。

todo:image_alt_text

サンプルコード

const AsposeCells = require("aspose.cells.node");
const path = require("path");

// Implement IWarningCallback interface to catch warnings while loading workbook
class WarningCallback extends AsposeCells.IWarningCallback {
    warning(warningInfo) {
        if (warningInfo.getType() === AsposeCells.WarningType.DuplicateDefinedName) {
            console.log("Duplicate Defined Name Warning: " + warningInfo.getDescription());
        }
    }
}

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");

// Create load options and set the WarningCallback property 
// to catch warnings while loading workbook
const options = new AsposeCells.LoadOptions();
options.setWarningCallback(new WarningCallback());

// Load the source excel file
const book = new AsposeCells.Workbook(path.join(dataDir, "sampleDuplicateDefinedName.xlsx"), options);

// Save the workbook 
book.save(path.join(dataDir, "outputDuplicateDefinedName.xlsx"));

コンソール出力

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

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