ワークブックを読み込む際にVBAプロジェクトをフィルタリングする
Contents
[
Hide
]
C#でExcelワークブックを読み込む際にVBAプロジェクトをフィルタリングする
.xlsm/.xslbファイルの一部は非常に多くのマクロ(または非常に長いマクロ)を含んでいます。 Aspose.Cellsはこのようなワークブックを開く際にこの(メタ)データを無条件でロードします。そうした不要なコンテンツをスキップして複数のワークブックのシート名のみを抽出する必要がある場合は、LoadDataFilterOptionsでこれを制御する必要があります。このフィルタは、LoadDataFilterOptions.VBAを導入することで提供されます。
サンプルコード
以下のサンプルコードは、VBAのみがフィルタリングされたワークブックを読み込みます。この機能のテスト用に使用されるサンプルファイルを提供するリンクがあります。
sampleMacroEnabledWorkbook.xlsm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Set the load options, we do not want to load VBA | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.Auto); | |
loadOptions.LoadFilter = new LoadFilter(LoadDataFilterOptions.All & ~LoadDataFilterOptions.VBA); | |
// Create workbook object from sample excel file using load options | |
Workbook book = new Workbook(sourceDir + "sampleMacroEnabledWorkbook.xlsm", loadOptions); | |
// Save the output in pdf format | |
book.Save(outputDir + "OutputSampleMacroEnabledWorkbook.xlsm", SaveFormat.Xlsm); |