Filtrar objetos al cargar el libro de trabajo o la hoja de trabajo

Posibles escenarios de uso

Por favor useLoadOptions.LoadFilterpropiedad al filtrar datos del libro de trabajo. Pero si desea filtrar datos de hojas de trabajo individuales, tendrá que anular elLoadFilter.StartSheetmétodo. Proporcione el valor apropiado de laLoadDataFilterOptionsenumeración al crear o trabajar conCargarfiltro.

ÉlLoadDataFilterOptionsenumeración tiene los siguientes valores posibles.

  • Todos
  • Configuración del libro
  • Celda en blanco
  • CellBool
  • CellData
  • error de celda
  • CellNumeric
  • Cadena de celdas
  • valor de celda
  • Gráfico
  • Formato condicional
  • Validación de datos
  • Nombres definidos
  • Propiedades del documento
  • Fórmula
  • hipervínculos
  • MergedArea
  • Tabla dinámica
  • Ajustes
  • Forma
  • SheetData
  • Configuración de hoja
  • Estructura
  • Estilo
  • Mesa
  • VBA
  • XmlMapa

Filtrar objetos al cargar el libro de trabajo

El siguiente código de ejemplo ilustra cómo filtrar gráficos del libro. Por favor, checa elejemplo de archivo de Excel utilizado en este código y elsalida PDFgenerada por ella. Como puede ver en el resultado PDF, todos los gráficos se han filtrado del libro de trabajo.

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

Filtrar objetos al cargar la hoja de trabajo

El siguiente código de ejemplo carga elarchivo fuente excel y filtra los siguientes datos de sus hojas de trabajo usando un filtro personalizado.

  • Filtra gráficos de la hoja de trabajo denominada NoCharts.
  • Filtra las formas de la hoja de trabajo denominada NoShapes.
  • Filtra el formato condicional de la hoja de trabajo denominada NoConditionalFormatting.

Una vez, carga elarchivo fuente excel con un filtro personalizado, toma las imágenes de todas las hojas de trabajo una por una. Aquí están las imágenes de salida para su referencia. Como 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 trabajo.

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