Filtra gli oggetti durante il caricamento della cartella di lavoro o del foglio di lavoro

Possibili scenari di utilizzo

Si prega di utilizzareLoadOptions.LoadFilterproperty durante il filtraggio dei dati dalla cartella di lavoro. Ma se vuoi filtrare i dati da singoli fogli di lavoro, dovrai sovrascrivere il fileLoadFilter.StartSheetmetodo. Si prega di fornire un valore appropriato daLoadDataFilterOptionsenumerazione durante la creazione o l’utilizzoCarica filtro.

IlLoadDataFilterOptionsenumerazione ha i seguenti possibili valori.

  • Tutti
  • Impostazioni libro
  • CellBlank
  • CellBool
  • CellData
  • CellError
  • CellNumeric
  • CellString
  • CellValue
  • Grafico
  • Formattazione condizionale
  • Convalida dei dati
  • Nomi definiti
  • Proprietà documento
  • Formula
  • Collegamenti ipertestuali
  • Area unita
  • Tabella pivot
  • Impostazioni
  • Forma
  • FoglioDati
  • Impostazioni foglio
  • Struttura
  • Stile
  • Tavolo
  • VBA
  • XmlMap

Filtra gli oggetti durante il caricamento della cartella di lavoro

Il codice di esempio seguente illustra come filtrare i grafici dalla cartella di lavoro. Si prega di controllarefile excel di esempio utilizzato in questo codice e iluscita PDFgenerato da esso. Come puoi vedere nell’output PDF, tutti i grafici sono stati filtrati dalla cartella di lavoro.

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

Filtra gli oggetti durante il caricamento del foglio di lavoro

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

  • Filtra i grafici dal foglio di lavoro denominato NoCharts.
  • Filtra le forme dal foglio di lavoro denominato NoShapes.
  • Filtra la formattazione condizionale dal foglio di lavoro denominato NoConditionalFormatting.

Una volta, carica il filefile excel di origine con un filtro personalizzato, prende le immagini di tutti i fogli di lavoro uno per uno. Ecco le immagini di output per riferimento. Come puoi vedere, la prima immagine non ha grafici, la seconda immagine non ha forme e la terza immagine non ha formattazione condizionale.

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

Ecco come utilizzare la classe CustomLoadFilter secondo i nomi dei fogli di lavoro.

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