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

Scénarios d’utilisation possibles

Veuillez utiliser la propriété LoadOptions.LoadFilter pour filtrer les données du classeur. Mais si vous voulez filtrer les données des feuilles de calcul individuelles, alors vous devrez remplacer la méthode LoadFilter.startSheet . Veuillez fournir la valeur appropriée de l’énumération LoadDataFilterOptions lors de la création ou de la manipulation de LoadFilter.

L’énumération LoadDataFilterOptions comporte les valeurs suivantes.

Objets de filtre lors du chargement du classeur

Le code d’exemple suivant illustre comment filtrer les graphiques du classeur. Veuillez vérifier le fichier Excel d’exemple utilisé dans ce code et le PDF de sortie généré par celui-ci. Comme vous pouvez le voir dans le PDF de sortie, 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-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(FilterObjectsLoadingWorkbook.class) + "articles/";
//Filter charts from entire workbook
LoadOptions ldOpts = new LoadOptions();
ldOpts.setLoadFilter(new LoadFilter(LoadDataFilterOptions.ALL & ~LoadDataFilterOptions.CHART));
//Load the workbook with above filter
Workbook wb = new Workbook(dataDir + "sampleFilterCharts.xlsx", ldOpts);
//Save entire worksheet into a single page
PdfSaveOptions opts = new PdfSaveOptions();
opts.setOnePagePerSheet(true);
//Save the workbook in pdf format with the above pdf save options
wb.save(dataDir + "sampleFilterCharts.pdf", opts);

Objets de filtre lors du chargement de la feuille de calcul

Le code d’exemple suivant charge le fichier Excel source et filtre les données suivantes 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, le fichier Excel source chargé 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-Java
public class FilterObjectsLoadingWorksheets {
// Implement your own custom load filter, it will enable you to filter your
// individual worksheet
class CustomLoadFilter extends LoadFilter {
public void startSheet(Worksheet sheet) {
if (sheet.getName().equals("NoCharts")) {
// Load everything and filter charts
this.setLoadDataFilterOptions(LoadDataFilterOptions.ALL& ~LoadDataFilterOptions.CHART);
}
if (sheet.getName().equals("NoShapes")) {
// Load everything and filter shapes
this.setLoadDataFilterOptions(LoadDataFilterOptions.ALL& ~LoadDataFilterOptions.DRAWING);
}
if (sheet.getName().equals("NoConditionalFormatting")) {
// Load everything and filter conditional formatting
this.setLoadDataFilterOptions(LoadDataFilterOptions.ALL& ~LoadDataFilterOptions.CONDITIONAL_FORMATTING);
}
}// End StartSheet method.
}// End CustomLoadFilter class.
public static void main(String[] args) throws Exception {
FilterObjectsLoadingWorksheets pg = new FilterObjectsLoadingWorksheets();
pg.Run();
}
public void Run() throws Exception {
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(FilterObjectsLoadingWorksheets.class) + "TechnicalArticles/";
// Filter worksheets using custom load filter
LoadOptions ldOpts = new LoadOptions();
ldOpts.setLoadFilter(new CustomLoadFilter());
// Load the workbook with above filter
Workbook wb = new Workbook(dataDir + "sampleFilterDifferentObjects.xlsx", ldOpts);
// Take the image of all worksheets one by one
for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
// Access worksheet at index i
Worksheet ws = wb.getWorksheets().get(i);
// Create image or print options, we want the image of entire
// worksheet
ImageOrPrintOptions opts = new ImageOrPrintOptions();
opts.setOnePagePerSheet(true);
opts.setImageType(ImageType.PNG);
// Convert worksheet into image
SheetRender sr = new SheetRender(ws, opts);
sr.toImage(0, dataDir + ws.getName() + ".png");
}
}
}