Filtra gli Oggetti durante il caricamento del Workbook o del Foglio di Lavoro

Possibili Scenari di Utilizzo

Si prega di utilizzare la proprietà LoadOptions.LoadFilter mentre si filtrano i dati dal workbook. Ma se si desidera filtrare i dati dai singoli fogli di lavoro, sarà necessario sovrascrivere il metodo LoadFilter.startSheet. Si prega di fornire il valore appropriato dall’enumerazione LoadDataFilterOptions durante la creazione o la lavorazione con LoadFilter.

L’enumerazione LoadDataFilterOptions ha i seguenti valori.

Filtra oggetti durante il caricamento del workbook

Il seguente codice di esempio illustra come filtrare i grafici dal workbook. Si prega di controllare il file excel di esempio utilizzato in questo codice e il PDF di output generato da esso. Come si può vedere nel PDF di output, tutti i grafici sono stati filtrati dal workbook.

// 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);

Filtra oggetti durante il caricamento del foglio di lavoro

Il seguente codice di esempio carica il file excel di origine e filtra i seguenti dati dai suoi fogli di lavoro utilizzando un filtro personalizzato.

  • Filtra i Grafici dalla cartella di lavoro denominata NoCharts.
  • Filtra le Forme dalla cartella di lavoro denominata NoShapes.
  • Filtra la formattazione condizionale dalla cartella di lavoro denominata NoConditionalFormatting.

Una volta caricato il file excel di origine con un filtro personalizzato, vengono prese le immagini di tutte le cartelle di lavoro una per una. Ecco le immagini di output per il tuo riferimento. Come puoi vedere, la prima immagine non contiene grafici, la seconda immagine non contiene forme e la terza immagine non ha la formattazione condizionale.

// 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");
}
}
}