Filterobjekte beim Laden der Arbeitsmappe oder des Arbeitsblatts
Mögliche Verwendungsszenarien
Bitte verwenden Sie die LoadOptions.LoadFilter-Eigenschaft beim Filtern von Daten aus der Arbeitsmappe. Wenn Sie jedoch Daten aus einzelnen Arbeitsblättern filtern möchten, müssen Sie die Methode LoadFilter.startSheet überschreiben. Bitte geben Sie den entsprechenden Wert aus der Enumeration LoadDataFilterOptions an, wenn Sie LoadFilter erstellen oder damit arbeiten.
Die Enumeration LoadDataFilterOptions hat die folgenden Werte.
- KEINE
- ALLE
- ZELLE_LEER
- ZELLE_TEXT
- ZELLE_NUMERISCH
- ZELLE_FEHLER
- ZELLE_BOOLEAN
- ZELLENWERT
- FORMEL
- ZELLE_DATEN
- DIAGRAMM
- FORM
- ZUSAMMENGEFÜGTEN_BEREICH
- BEDINGTE_FORMATIERUNG
- DATEN_VALIDIERUNG
- PIVOTTABELLE
- TABELLE
- HYPERLINKS
- SHEET_EINSTELLUNGEN
- SHEET_DATEN
- BUCH_EINSTELLUNGEN
- EINSTELLUNGEN
- XML_MAP
- STRUKTUR
- DOKUMENT_EIGENSCHAFTEN
- DEFINIERTE_NAMEN
- VBA
- STIL
Filterobjekte beim Laden der Arbeitsmappe
Der folgende Beispielcode veranschaulicht, wie Diagramme aus der Arbeitsmappe gefiltert werden. Bitte überprüfen Sie die Beispiel Excel-Datei, die in diesem Code verwendet wird, und die generierte Ausgabe-PDF-Datei. Wie Sie im Ausgabe-PDF sehen können, wurden alle Diagramme aus der Arbeitsmappe gefiltert.
// 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); |
Filterobjekte beim Laden des Arbeitsblatts
Der folgende Beispielcode lädt die Quelldatei Excel und filtert die folgenden Daten aus ihren Tabellen mithilfe eines benutzerdefinierten Filters.
- Es filtert Diagramme aus dem Arbeitsblatt mit dem Namen NoCharts.
- Es filtert Formen aus dem Arbeitsblatt mit dem Namen NoShapes.
- Es filtert bedingte Formatierungen aus dem Arbeitsblatt mit dem Namen NoConditionalFormatting.
Sobald die Quelldatei Excel mit einem benutzerdefinierten Filter geladen wurde, werden die Bilder aller Tabellenblätter nacheinander aufgenommen. Hier sind die Ausgabebilder zur Ansicht. Wie Sie sehen können, hat das erste Bild keine Diagramme, das zweite Bild keine Formen und das dritte Bild hat 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"); | |
} | |
} | |
} |