ワークブックまたはワークシートをロードする際にオブジェクトをフィルタリングする
可能な使用シナリオ
ワークブックからデータをフィルタリングする際にLoadOptions.LoadFilterプロパティを使用してください。個々のワークシートからデータをフィルタリングする場合は、LoadFilter.startSheetメソッドをオーバーライドする必要があります。LoadFilterの作成または使用時には、LoadDataFilterOptions列挙型から適切な値を提供してください。
LoadDataFilterOptions列挙型には、以下の値が含まれます。
- なし
- すべて
- CELL_BLANK
- CELL_STRING
- CELL_NUMERIC
- CELL_ERROR
- CELL_BOOL
- CELL_VALUE
- 数式
- セルデータ
- チャート
- 図形
- 結合された領域
- 条件付き書式
- データの検証
- ピボットテーブル
- 表
- ハイパーリンク
- シートの設定
- シートのデータ
- ブックの設定
- 設定
- XML マップ
- 構造
- 文書のプロパティ
- 定義済み名
- VBA
- スタイル
ワークブックの読み込み中にフィルターオブジェクト
次のサンプルコードは、ワークブックからチャートをフィルタリングする方法を示しています。このコードで使用されるサンプルエクセルファイルおよびそれによって生成された出力PDFをご確認ください。出力PDFでは、すべてのチャートがワークブックからフィルタリングされていることがわかります。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(FilterObjectsLoadingWorkbook.class) + "articles/"; | |
//Filter charts from entire workbook | |
LoadOptions ldOpts = new LoadOptions(); | |
ldOpts.setLoadFilter(new LoadFilter(LoadDataFilterOptions.ALL & ~LoadDataFilterOptions.CHART)); | |
//Load the workbook with above filter | |
Workbook wb = new Workbook(dataDir + "sampleFilterCharts.xlsx", ldOpts); | |
//Save entire worksheet into a single page | |
PdfSaveOptions opts = new PdfSaveOptions(); | |
opts.setOnePagePerSheet(true); | |
//Save the workbook in pdf format with the above pdf save options | |
wb.save(dataDir + "sampleFilterCharts.pdf", opts); |
ワークシートの読み込み中にフィルターオブジェクト
次のサンプルコードは、ソースエクセルファイルをロードし、カスタムフィルタを使用してそのワークシートから次のデータをフィルタリングする方法を説明しています。
- NoChartsという名前のワークシートからグラフをフィルタリングします。
- NoShapesという名前のワークシートから形状をフィルタリングします。
- NoConditionalFormattingという名前のワークシートから条件付き書式をフィルタリングします。
一度、カスタムフィルタを使用してソースエクセルファイルを読み込むと、ワークシートのすべての画像を1つずつ取得します。参照のために、こちらに出力画像を示します。出力画像をご覧いただくと、最初の画像にはチャートがなく、2番目の画像には図形がなく、3番目の画像には条件付き書式がないことがわかります。
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
public class FilterObjectsLoadingWorksheets { | |
// Implement your own custom load filter, it will enable you to filter your | |
// individual worksheet | |
class CustomLoadFilter extends LoadFilter { | |
public void startSheet(Worksheet sheet) { | |
if (sheet.getName().equals("NoCharts")) { | |
// Load everything and filter charts | |
this.setLoadDataFilterOptions(LoadDataFilterOptions.ALL& ~LoadDataFilterOptions.CHART); | |
} | |
if (sheet.getName().equals("NoShapes")) { | |
// Load everything and filter shapes | |
this.setLoadDataFilterOptions(LoadDataFilterOptions.ALL& ~LoadDataFilterOptions.DRAWING); | |
} | |
if (sheet.getName().equals("NoConditionalFormatting")) { | |
// Load everything and filter conditional formatting | |
this.setLoadDataFilterOptions(LoadDataFilterOptions.ALL& ~LoadDataFilterOptions.CONDITIONAL_FORMATTING); | |
} | |
}// End StartSheet method. | |
}// End CustomLoadFilter class. | |
public static void main(String[] args) throws Exception { | |
FilterObjectsLoadingWorksheets pg = new FilterObjectsLoadingWorksheets(); | |
pg.Run(); | |
} | |
public void Run() throws Exception { | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(FilterObjectsLoadingWorksheets.class) + "TechnicalArticles/"; | |
// Filter worksheets using custom load filter | |
LoadOptions ldOpts = new LoadOptions(); | |
ldOpts.setLoadFilter(new CustomLoadFilter()); | |
// Load the workbook with above filter | |
Workbook wb = new Workbook(dataDir + "sampleFilterDifferentObjects.xlsx", ldOpts); | |
// Take the image of all worksheets one by one | |
for (int i = 0; i < wb.getWorksheets().getCount(); i++) { | |
// Access worksheet at index i | |
Worksheet ws = wb.getWorksheets().get(i); | |
// Create image or print options, we want the image of entire | |
// worksheet | |
ImageOrPrintOptions opts = new ImageOrPrintOptions(); | |
opts.setOnePagePerSheet(true); | |
opts.setImageType(ImageType.PNG); | |
// Convert worksheet into image | |
SheetRender sr = new SheetRender(ws, opts); | |
sr.toImage(0, dataDir + ws.getName() + ".png"); | |
} | |
} | |
} |