Çalışma Kitabı veya Çalışsayfa Yüklenirken Nesneleri Filtrele

Olası Kullanım Senaryoları

LoadOptions.LoadFilter özelliğini kullanarak çalışma kitabından veri filtrelerken. Ancak, tek tek çalışsayfalardan veri filtrelemek istiyorsanız, LoadFilter.startSheet yöntemini geçersiz kılmanız gerekecek. LoadDataFilterOptions numaralandırmasından uygun değeri sağlarken LoadFilter ile oluştururken veya çalışırken, lütfen uygun bir değer sağlayın.

LoadDataFilterOptions numaralandırmasının aşağıdaki değerleri bulunmaktadır.

Çalışma Kitabı Yüklenirken Nesneleri Filtrele

Aşağıdaki örnek kod, çalışma kitabından grafikleri filtrelemeyi göstermektedir. Lütfen bu kodda kullanılan örnek excel dosyasını ve bunun tarafından üretilen çıktı PDF’yi kontrol edin. Çıktı PDF’de, tüm grafiklerin çalışma kitabından filtre edildiğini görebilirsiniz.

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

Çalışma Sayfası Yüklenirken Nesneleri Filtrele

Aşağıdaki örnek kod, kaynak excel dosyasını yükler ve çalışma sayfalarındaki belirli verileri özel bir filtre kullanarak filtreler.

  • Tablo adı NoCharts olan çalışma sayfasından Grafikleri filtreler.
  • Tablo adı NoShapes olan çalışma sayfasından Şekilleri filtreler.
  • Tablo adı NoConditionalFormatting olan çalışma sayfasından Koşullu Biçimlendirmeyi filtreler.

Özelleştirilmiş bir filtre kullanarak kaynak excel dosyasını yükledikten sonra, tüm çalışma sayfalarının resimlerini tek tek alır. İşte referansınız için çıktı resimleri. Görebileceğiniz gibi, ilk resimde grafikler yok, ikinci resimde şekiller yok ve üçüncü resimde koşullu biçimlendirme yok.

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