Filtrera objekt när du laddar arbetsbok eller arbetsblad

Möjliga användningsscenarier

Snälla användLoadOptions.LoadFilteregenskap medan du filtrerar data från arbetsboken. Men om du vill filtrera data från enskilda kalkylblad måste du åsidosättaLoadFilter.StartSheetmetod. Ange lämpligt värde frånLoadDataFilterOptionsuppräkning medan du skapar eller arbetar medLoadFilter.

DeLoadDataFilterOptionsuppräkning har följande möjliga värden.

  • Allt
  • Bokinställningar
  • CellBlank
  • CellBool
  • CellData
  • CellError
  • CellNumeric
  • CellString
  • CellValue
  • Diagram
  • Villkorlig formatering
  • Datavalidering
  • Definerade namn
  • Dokument egenskaper
  • Formel
  • Hyperlänkar
  • MergedArea
  • Pivottabell
  • inställningar
  • Form
  • SheetData
  • Bladinställningar
  • Strukturera
  • Stil
  • Tabell
  • VBA
  • XmlMap

Filtrera objekt medan arbetsboken laddas

Följande exempelkod illustrerar hur du filtrerar diagram från arbetsboken. Vänligen kontrolleraexempel på excel-fil används i den här koden ochutgång PDFgenereras av det. Som du kan se i utdata PDF har alla diagram filtrerats bort från arbetsboken.

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

Filtrera objekt medan kalkylblad laddas

Följande exempelkod laddarsource excel-fil och filtrerar följande data från sina kalkylblad med hjälp av ett anpassat filter.

  • Det filtrerar diagram från kalkylblad som heter NoCharts.
  • Det filtrerar former från kalkylblad som heter NoShapes.
  • Det filtrerar villkorlig formatering från kalkylbladet som heter NoConditionalFormatting.

En gång laddar densource excel-fil med ett anpassat filter tar den bilderna av alla kalkylblad en efter en. Här är utdatabilderna för din referens. Som du kan se har den första bilden inga diagram, den andra bilden har inga former och den tredje bilden har inte villkorlig formatering.

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

Så här använder du klassen CustomLoadFilter enligt kalkylbladsnamn.

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