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