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