Filtra gli Oggetti durante il caricamento del Workbook o del Foglio di Lavoro

Possibili Scenari di Utilizzo

Si prega di utilizzare la proprietà LoadOptions.LoadFilter per filtrare i dati dalla cartella di lavoro. Ma se si desidera filtrare i dati dai singoli fogli di lavoro, allora sarà necessario sovrascrivere il metodo LoadFilter.StartSheet. Si prega di fornire il valore appropriato dall’enumerazione LoadDataFilterOptionshttps://reference.aspose.com/cells/net/aspose.cells/loaddatafilteroptions) durante la creazione o il lavoro con LoadFilter.

L’enumerazione LoadDataFilterOptions ha i seguenti valori possibili.

  • Tutti
  • Impostazioni del libro
  • Cellavuota
  • Cella booleana
  • Dati cella
  • Errore cella
  • Numerico cella
  • Stringa cella
  • Valore cella
  • Chart
  • Formattazione condizionale
  • Convalida dati
  • Nomi definiti
  • Proprietà documento
  • Formula
  • Collegamenti ipertestuali
  • Area unita
  • Tabella pivot
  • Impostazioni
  • Forma
  • Dati del Foglio
  • Impostazioni del Foglio
  • Struttura
  • Stile
  • Tabella
  • VBA
  • XmlMap

Filtra 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 controllare il file excel di esempio utilizzato in questo codice e il PDF di output generato da esso. Come si può vedere nel PDF di output, tutti i grafici sono stati filtrati fuori 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 oggetti durante il caricamento del foglio di lavoro

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

  • Filtra i Grafici dalla cartella di lavoro denominata NoCharts.
  • Filtra le Forme dalla cartella di lavoro denominata NoShapes.
  • Filtra la formattazione condizionale dalla cartella di lavoro denominata NoConditionalFormatting.

Una volta caricato il file Excel di origine con un filtro personalizzato, si prendono le immagini di tutti i fogli di lavoro uno per uno. Ecco le immagini di output per il riferimento. Come si può vedere, la prima immagine non contiene 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;
}
}
}

Così si utilizza la classe CustomLoadFilter come per 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");
}
}