Удалить пустые строки и столбцы в Excel с помощью Java

Мы можем легко удалить пустые строки и столбцы из листов Excel программным путем. В этой статье мы узнаем, как удалить пустые строки и столбцы в Excel с помощью Java.

В этой статье должны быть раскрыты следующие темы:

Java API для удаления пустых строк и столбцов в Excel

Для удаления пустых строк и столбцов из файлов XLSX мы будем использовать API Aspose.Cells for Java. Пожалуйста, либо загрузите JAR API, либо просто добавьте следующую конфигурацию pom.xml в приложение Java на основе Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.11</version>
</dependency>

Удалить пустые строки в Excel с помощью Java

Мы можем программно удалить пустые строки из рабочих листов Excel, выполнив следующие действия:

  • Во-первых, загрузите файл Excel, используя класс Workbook.
  • Затем вызовите метод Workbook.getWorksheets() и получите рабочие листы в объекте WorksheetCollection.
  • Затем получите доступ к рабочему листу с пустыми строками либо по его индексу (с нуля), либо по имени.
  • После этого вызовите метод Cells.deleteBlankRows(), чтобы удалить пустые строки из рабочего листа, к которому осуществляется доступ.
  • Наконец, вызовите метод save() с путем к выходному файлу, чтобы сохранить выходной файл.

В следующем примере кода показано, как удалить пустые строки из Excel с помощью Java.

// Загрузите существующий файл Excel.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Получите коллекцию рабочих листов в электронной таблице.
WorksheetCollection sheets = workbook.getWorksheets();

// Получить первый рабочий лист из WorksheetCollection по индексу.
Worksheet sheet = sheets.get(0);
// Или по имени.
// Рабочий лист = Sheets.get("Лист1");

// Удалите пустые строки из рабочего листа.
sheet.getCells().deleteBlankRows();

// Сохраните обновленный файл Excel.
workbook.save("C:\\Files\\Cells\\output.xlsx");
Удалить пустые строки в Excel с помощью Java.

Удалить пустые строки в Excel с помощью Java.

Точно так же мы можем удалить пустые строки со всех рабочих листов в документе Excel. Мы просто перебираем WorksheetCollection и вызываем метод deleteBlankRows() для каждого рабочего листа, как показано в следующем примере кода:

// Откройте существующий файл Excel.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Получить коллекцию рабочих листов
WorksheetCollection worksheets = workbook.getWorksheets();

// Переберите рабочие листы.
for (int i=0; i<worksheets.getCount(); i++)
{
    // Доступ к листам один за другим
    Worksheet sheet = worksheets.get(i);
  
    // Удалите пустые строки из рабочего листа.
    sheet.getCells().deleteBlankRows();
}

// Сохраните обновленный файл Excel.
workbook.save("C:\\Files\\Cells\\output.xlsx");

Удалить пустые столбцы в Excel с помощью Java

Мы можем программно удалить пустые столбцы из рабочих листов Excel, выполнив следующие действия:

  • Во-первых, загрузите файл Excel, используя класс Workbook.
  • Затем вызовите метод Workbook.getWorksheets() и получите рабочие листы в объекте WorksheetCollection.
  • Затем получите доступ к рабочему листу с пустыми столбцами либо по его индексу (начиная с нуля), либо по имени.
  • После этого вызовите метод Cells.deleteBlankColumns(), чтобы удалить пустые столбцы из рабочего листа, к которому осуществляется доступ.
  • Наконец, вызовите метод save() с путем к выходному файлу, чтобы сохранить выходной файл.

В следующем примере кода показано, как удалить пустые столбцы из Excel с помощью Java.

// Откройте существующий файл Excel.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Получите коллекцию рабочих листов в электронной таблице.
WorksheetCollection sheets = workbook.getWorksheets();

// Получить первый рабочий лист из WorksheetCollection по индексу.
Worksheet sheet = sheets.get(2);

// Удалите пустые столбцы.
sheet.getCells().deleteBlankColumns(options);

// Сохраните обновленный файл Excel.
workbook.save("C:\\Files\\Cells\\output_DeleteBlankColumns.xlsx");	
Удалить пустые столбцы в Excel с помощью Java.

Удалить пустые столбцы в Excel с помощью Java.

Автоматическое обновление ссылок при удалении пустых строк и столбцов

Удаление пустых строк или столбцов может нарушить ссылки в формулах, диаграммах и таблицах. Например, ячейка A1 в Sheet2 имеет формулу = Sheet1! C7, которая ссылается на ячейку C7 первого рабочего листа, как показано на следующем рисунке.

Ячейка A1 в Sheet2 ссылается на значение ячейки C7 в Sheet1.

Ячейка A1 в Sheet2 ссылается на значение ячейки C7 в Sheet1.

Если мы удалим пустые строки в Sheet1, значение C7 (650000) будет перемещено в ячейку C6. Но формула (=Sheet1!C7) не будет обновляться, и в ячейке A1 будет отображаться значение C7, которое в этом случае будет 550000. Мы можем избежать этой проблемы, установив для параметра DeleteOptions.setUpdateReference значение true. Это обеспечит обновление ссылок при удалении пустых строк.

Мы можем автоматически обновлять ссылки при программном удалении пустых строк из рабочих листов Excel, выполнив следующие шаги:

  • Во-первых, загрузите файл Excel, используя класс Workbook.
  • Затем вызовите метод Workbook.getWorksheets() и получите рабочие листы в объекте WorksheetCollection.
  • Затем получите доступ к рабочему листу либо по индексу (с нуля), либо по имени с пустыми строками.
  • Затем создайте экземпляр класса DeleteOptions.
  • Затем присвойте setUpdateReferences() значение true. Он обновит ссылки на других листах, удалив пустые строки.
  • После этого вызовите метод Cells.deleteBlankRows() с объектом DeleteOptions в качестве аргумента, чтобы удалить пустые строки из рабочего листа, к которому осуществляется доступ.
  • Наконец, вызовите метод save() с путем к выходному файлу, чтобы сохранить выходной файл.

В следующем примере кода показано, как обновить ссылки при удалении пустых строк в Excel.

// Откройте существующий файл Excel.
Workbook workbook = new Workbook("C:\\Files\\Cells\\sample_rows_cols.xlsx");

// Получите коллекцию рабочих листов в электронной таблице.
WorksheetCollection sheets = workbook.getWorksheets();

// Получить первый рабочий лист из WorksheetCollection по индексу.
Worksheet sheet = sheets.get(0);

// Эта опция обеспечит ссылки (в формулах, диаграммах)
// обновляются при удалении пустых строк.
DeleteOptions options = new DeleteOptions();
options.setUpdateReference(true);

// Удалите пустые строки из рабочего листа.
sheet.getCells().deleteBlankRows(options);

// Сохраните обновленный файл Excel.
workbook.save("C:\\Files\\Cells\\output_UpdateReferencesAutomatically.xlsx");

Точно так же мы можем обновлять ссылки при удалении пустых столбцов в Excel. Однако нам просто нужно вызвать метод deleteBlankColumns() с DeleteOptions в качестве аргумента.

Получить бесплатную лицензию

Попробуйте API без ознакомительных ограничений, запросив бесплатную временную лицензию.

Вывод

В этой статье мы узнали, как удалять строки и столбцы в Excel с помощью Java. Мы также увидели, как обновлять ссылки при программном удалении строк и столбцов. Кроме того, вы можете узнать больше об Aspose.Cells for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также