Filtern Sie Objekte beim Laden der Arbeitsmappe oder des Arbeitsblatts

Mögliche Nutzungsszenarien

Bitte verwendeLoadOptions.LoadFilter -Eigenschaft beim Filtern von Daten aus der Arbeitsmappe. Wenn Sie jedoch Daten aus einzelnen Arbeitsblättern filtern möchten, müssen Sie überschreibenLoadFilter.startSheet Methode. Bitte geben Sie den entsprechenden Wert aus der anLoadDataFilterOptions Aufzählung beim Erstellen oder Arbeiten mitLadefilter.

DasLoadDataFilterOptionsEnumeration hat die folgenden Werte.

Filtern Sie Objekte beim Laden der Arbeitsmappe

Der folgende Beispielcode veranschaulicht, wie Diagramme aus der Arbeitsmappe gefiltert werden. Bitte überprüfen Sie dieExcel-Beispieldatei in diesem Code verwendet und dieAusgang PDFdadurch erzeugt. Wie Sie in der Ausgabe PDF sehen können, wurden alle Diagramme aus der Arbeitsmappe herausgefiltert.

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

Objekte beim Laden des Arbeitsblatts filtern

Der folgende Beispielcode lädt dieExcel-Quelldatei und filtert die folgenden Daten aus seinen Arbeitsblättern mit einem benutzerdefinierten Filter.

  • Es filtert Diagramme aus dem Arbeitsblatt mit dem Namen NoCharts.
  • Es filtert Formen aus dem Arbeitsblatt mit dem Namen NoShapes.
  • Es filtert die bedingte Formatierung aus dem Arbeitsblatt mit dem Namen NoConditionalFormatting.

Einmal lädt es dieExcel-Quelldatei Mit einem benutzerdefinierten Filter werden die Bilder aller Arbeitsblätter einzeln aufgenommen. Hier sind die Ausgabebilder für Ihre Referenz. Wie Sie sehen, hat das erste Bild keine Diagramme, das zweite Bild keine Formen und das dritte Bild keine bedingte Formatierung.

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