Обнаружение пустых листов
Проверить наличие заселенных Cells
Рабочие листы могут иметь одну или несколько ячеек, заполненных значениями, где значение может быть простым (текст, число, дата/время) или формулой или значением на основе формулы. В таком случае легко определить, является ли данный рабочий лист пустым или нет. Все, что нам нужно проверить, этоCells.MaxDataRow или жеCells.MaxDataColumnхарактеристики. Если вышеупомянутые свойства возвращают нулевые или положительные значения, это означает, что одна или несколько ячеек были заполнены, однако, если какое-либо из этих свойств возвращает -1, это означает, что ни одна из ячеек на данном листе не была заполнена.
Проверить наличие пустой инициализации Cells
Все ячейки со значениями автоматически инициализируются, однако существует вероятность того, что на рабочем листе есть ячейки с примененным только форматированием. В таком сценарииCells.MaxDataRow или жеCells.MaxDataColumnproperties вернет -1, что указывает на отсутствие каких-либо заполненных значений, но инициализированные ячейки из-за форматирования ячейки не могут быть обнаружены с помощью этого подхода. Чтобы проверить, есть ли на рабочем листе пустые инициализированные ячейки, рекомендуется использоватьИтератор.hasNext метод на итераторе, полученный из коллекции Cells. Еслиiterator.hasNextметод возвращает true, то это означает, что на данном листе есть одна или несколько инициализированных ячеек.
Проверить фигуры
Возможно, что на данном рабочем листе нет заполненных ячеек, однако он может содержать фигуры и объекты, такие как элементы управления, диаграммы, изображения и т. д. Если нам нужно проверить, содержит ли рабочий лист какую-либо фигуру, мы можем сделать это, проверивShapeCollection.Countимущество. Любое положительное значение указывает на наличие фигур на листе.
Образец программирования
// 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"); | |
} | |
} | |
} |