Upptäcka tomma kalkylblad

Kontrollera Populerade celler

Arbetsbladen kan ha en eller flera celler som är ifyllda med värden, där ett värde kan vara enkelt (text, numeriskt, datum/tid) eller en formel eller ett värdet baserat på en formel. I så fall är det enkelt att upptäcka om ett visst arbetsblad är tomt eller inte. Allt vi behöver kontrollera är Cells.MaxDataRow eller Cells.MaxDataColumn egenskaperna. Om ovanstående egenskaper returnerar noll eller positiva värden innebär det att en eller flera celler har fyllts i, men om någon av dessa egenskaper returnerar -1 indikerar det att inga av cellerna har fyllts i på det givna arbetsbladet.

Kontrollera toma initialiserade celler

Alla celler som har värden initialiseras automatiskt, men det finns en möjlighet att ett arbetsblad har celler med endast formatering applicerad. I sådant scenario kommer Cells.MaxDataRow eller Cells.MaxDataColumn egenskaperna att returnera -1 vilket indikerar frånvaron av några ifyllda värden men initialiserade celler på grund av att cellformateringen inte kan upptäckas med detta tillvägagångssätt. För att kontrollera om ett arbetsblad har tomma initialiserade celler rekommenderas det att använda metoden Iterator.hasNext på iteratorn som hämtats från cellsamlingen. Om metoden iterator.hasNext returnerar true innebär det att det finns en eller flera initialiserade celler på det givna arbetsbladet.

Kontrollera former

Det är möjligt att ett givet arbetsblad inte har några ifyllda celler, men det kan innehålla former & objekt såsom kontroller, diagram, bilder osv. Om vi behöver kontrollera om ett arbetsblad innehåller någon form, kan vi göra det genom att inspektera egenskapen ShapeCollection.Count. Ett positivt värde indikerar närvaron av form(er) på arbetsbladet.

Programmeringsexempel

// 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(CheckForShapes.class) + "TechnicalArticles/";
// Create an instance of Workbook and load an existing spreadsheet
Workbook workbook = new Workbook(dataDir + "SampleCheckCells.xlsx");
// Loop over all worksheets in the workbook
for (int i = 0; i < workbook.getWorksheets().getCount(); i++) {
Worksheet worksheet = workbook.getWorksheets().get(i);
// Check if worksheet has populated cells
if (worksheet.getCells().getMaxDataRow() != -1) {
System.out.println(worksheet.getName() + " is not empty because one or more cells are populated");
}
// Check if worksheet has shapes
else if (worksheet.getShapes().getCount() > 0) {
System.out.println(worksheet.getName() + " is not empty because there are one or more shapes");
}
// Check if worksheet has empty initialized cells
else {
Range range = worksheet.getCells().getMaxDisplayRange();
Iterator rangeIterator = range.iterator();
if (rangeIterator.hasNext()) {
System.out.println(worksheet.getName() + " is not empty because one or more cells are initialized");
} else {
System.out.println(worksheet.getName() + " is empty");
}
}
}