Filtrer les objets lors du chargement du classeur ou de la feuille de calcul

Scénarios d’utilisation possibles

Veuillez utiliserLoadOptions.LoadFilterpropriété lors du filtrage des données du classeur. Mais si vous souhaitez filtrer les données de feuilles de calcul individuelles, vous devrez remplacer leLoadFilter.StartSheetméthode. Veuillez fournir une valeur appropriée à partir duLoadDataFilterOptionsLoadDataFilterOptionsLoadDataFilterOptionsénumération lors de la création ou de l’utilisationChargerFiltre.

LeLoadDataFilterOptionsLoadDataFilterOptionsLoadDataFilterOptionsénumération a les valeurs possibles suivantes.

  • Tout
  • Paramètres du livre
  • CelluleVide
  • CellBool
  • CellData
  • CellErreur
  • CellNumérique
  • CellString
  • ValeurCellule
  • Graphique
  • Mise en forme conditionnelle
  • La validation des données
  • NomsDéfinis
  • Propriétés du document
  • Formule
  • Hyperliens
  • Zone fusionnée
  • Tableau croisé dynamique
  • Réglages
  • Façonner
  • SheetData
  • SheetSettings
  • Structure
  • Style
  • Table
  • VBA
  • XmlMap

Filtrer les objets lors du chargement du classeur

L’exemple de code suivant montre comment filtrer les graphiques du classeur. S’il vous plaît, vérifiez leexemple de fichier excel utilisé dans ce code et lesortie PDFgénéré par celui-ci. Comme vous pouvez le voir dans la sortie PDF, tous les graphiques ont été filtrés du classeur.

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

Filtrer les objets lors du chargement de la feuille de calcul

L’exemple de code suivant charge lefichier excel source et filtre les données suivantes à partir de ses feuilles de calcul à l’aide d’un filtre personnalisé.

  • Il filtre les graphiques de la feuille de calcul nommée NoCharts.
  • Il filtre les formes de la feuille de calcul nommée NoShapes.
  • Il filtre la mise en forme conditionnelle de la feuille de calcul nommée NoConditionalFormatting.

Une fois, il charge lefichier excel source avec un filtre personnalisé, il prend les images de toutes les feuilles de calcul une par une. Voici les images de sortie pour votre référence. Comme vous pouvez le voir, la première image n’a pas de graphiques, la deuxième image n’a pas de formes et la troisième image n’a pas de mise en forme conditionnelle.

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

Voici comment utiliser la classe CustomLoadFilter selon les noms de feuille de calcul.

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