Filtrar objetos al cargar el libro o la hoja de trabajo
Escenarios de uso posibles
Por favor, utilice la propiedad LoadOptions.LoadFilter mientras filtra datos del libro de trabajo. Pero si desea filtrar datos de hojas de cálculo individuales, entonces tendrá que anular el método LoadFilter.StartSheet. Proporcione el valor apropiado de la enumeración LoadDataFilterOptions al crear o trabajar con LoadFilter.
La enumeración LoadDataFilterOptions tiene los siguientes valores posibles.
- Todo
- Configuraciones del libro
- Celda en blanco
- Celda booleana
- Datos de celda
- Error de celda
- Numérico de celda
- Cadena de celda
- Valor de celda
- Chart
- Formato condicional
- Validación de datos
- Nombres definidos
- Propiedades del documento
- Fórmula
- Hipervínculos
- Área fusionada
- Tabla Dinámica
- Configuración
- Forma
- Datos de Hoja
- Configuraciones de Hoja
- Estructura
- Estilo
- Tabla
- VBA
- MapaXml
Objetos de Filtro al cargar el Libro
El siguiente código de ejemplo ilustra cómo filtrar gráficos del libro. Por favor, revise el archivo de Excel de ejemplo utilizado en este código y el PDF de salida generado por él. Como se puede ver en el PDF de salida, todos los gráficos han sido filtrados fuera del libro.
// 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); |
Objetos de Filtro al cargar la Hoja de Trabajo
El siguiente código de ejemplo carga el archivo de Excel fuente y filtra los siguientes datos de sus hojas de trabajo usando un filtro personalizado.
- Filtra los gráficos de la hoja de trabajo llamada SinGráficos.
- Filtra las formas de la hoja de trabajo llamada SinFormas.
- Filtra el formato condicional de la hoja de trabajo llamada SinFormatoCondicional.
Una vez que carga el archivo de Excel fuente con un filtro personalizado, toma las imágenes de todas las hojas una por una. Aquí están las imágenes de salida para su referencia. Como se puede ver, la primera imagen no tiene gráficos, la segunda imagen no tiene formas y la tercera imagen no tiene formato condicional.
// 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; | |
} | |
} | |
} |
Así es como se usa la clase CustomLoadFilter según los nombres de las hojas de cálculo.
// 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"); | |
} | |
} |