Filterobjekte beim Laden der Arbeitsmappe oder des Arbeitsblatts

Mögliche Verwendungsszenarien

Bitte verwenden Sie die Eigenschaft LoadOptions.LoadFilter zum 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 einen geeigneten Wert aus der Enumeration LoadDataFilterOptions an, wenn Sie einen LoadFilter erstellen oder damit arbeiten.

Die Enumeration LoadDataFilterOptions hat die folgenden möglichen Werte.

  • Alle
  • Bucheinstellungen
  • Zelle Leer
  • Zelle Bool
  • Zelldaten
  • Zellenfehler
  • Zellnumerisch
  • Zellenzeichenfolge
  • Zellwert
  • Chart
  • Bedingte Formatierung
  • Datenvalidierung
  • Definierte Namen
  • Dokumenteigenschaften
  • Formel
  • Hyperlinks
  • Zusammengeführter Bereich
  • Pivot-Tabelle
  • Einstellungen
  • Form
  • Tabellendaten
  • Tabelleneinstellungen
  • Struktur
  • Stil
  • Tabelle
  • VBA
  • XmlMap

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 das Ausgabe-PDF, das von ihm generiert wurde. 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-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create directory if it is not already present.
bool IsExists = System.IO.Directory.Exists(dataDir);
if (!IsExists)
System.IO.Directory.CreateDirectory(dataDir);
// Filter charts from the workbook.
LoadOptions lOptions = new LoadOptions();
lOptions.LoadFilter = new LoadFilter(LoadDataFilterOptions.All & ~LoadDataFilterOptions.Chart);
// Load the workbook with above filter.
Workbook workbook = new Workbook(dataDir + "sampleFilterCharts.xlsx", lOptions);
// Save worksheet to a single PDF page.
PdfSaveOptions pOptions = new PdfSaveOptions();
pOptions.OnePagePerSheet = true;
// Save the workbook in PDF format.
workbook.Save(dataDir + "sampleFilterCharts.pdf", pOptions);

Filterobjekte beim Laden des Arbeitsblatts

Der folgende Beispielcode lädt die Quell-Excel-Datei und filtert die folgenden Daten aus ihren Arbeitsblättern 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 es die Quell-Excel-Datei mit einem benutzerdefinierten Filter lädt, nimmt es die Bilder aller Arbeitsblätter nacheinander. Hier sind die Ausgabe-Bilder zur Referenz. Wie Sie sehen können, hat das erste Bild keine Diagramme, das zweite Bild hat 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-.NET
public class CustomLoadFilter : LoadFilter
{
public override void StartSheet(Worksheet sheet)
{
if (sheet.Name == "NoCharts")
{
//Load everything and filter charts
this.LoadDataFilterOptions = LoadDataFilterOptions.All & ~LoadDataFilterOptions.Chart;
}
if (sheet.Name == "NoShapes")
{
//Load everything and filter shapes
this.LoadDataFilterOptions = LoadDataFilterOptions.All & ~LoadDataFilterOptions.Drawing;
}
if (sheet.Name == "NoConditionalFormatting)")
{
//Load everything and filter conditional formatting
this.LoadDataFilterOptions = LoadDataFilterOptions.All & ~LoadDataFilterOptions.ConditionalFormatting;
}
}
}

So verwenden Sie die Klasse CustomLoadFilter gemäß der Arbeitsblattnamen.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
public static void Run()
{
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
//Output directory
string outputDir = RunExamples.Get_OutputDirectory();
// Filter worksheets using CustomLoadFilter class
LoadOptions loadOpts = new LoadOptions();
loadOpts.LoadFilter = new CustomLoadFilter();
// Load the workbook with filter defined in CustomLoadFilter class
Workbook workbook = new Workbook(sourceDir + "sampleCustomFilteringPerWorksheet.xlsx", loadOpts);
// Take the image of all worksheets one by one
for (int i = 0; i < workbook.Worksheets.Count; i++)
{
// Access worksheet at index i
Worksheet worksheet = workbook.Worksheets[i];
// Create an instance of ImageOrPrintOptions
// Render entire worksheet to image
ImageOrPrintOptions imageOpts = new ImageOrPrintOptions();
imageOpts.OnePagePerSheet = true;
imageOpts.ImageType = Drawing.ImageType.Png;
// Convert worksheet to image
SheetRender render = new SheetRender(worksheet, imageOpts);
render.ToImage(0, outputDir + "outputCustomFilteringPerWorksheet_" + worksheet.Name + ".png");
}
}