Перейти к основному содержимому

Объединение ячеек в Excel с помощью Apache POI

· 2 мин. чтения

1. Обзор

В этом руководстве мы покажем, как объединить ячейки в Excel с Apache POI.

2. Апач POI

Для начала нам сначала нужно добавить зависимость poi в файл нашего проекта pom.xml :

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.0</version>
</dependency>

Apache POI использует интерфейс Workbook для представления файла Excel. Он также использует интерфейсы Sheet , Row и Cell для моделирования различных уровней элементов в файле Excel.

3. Объединить ячейки

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

./78e2870c46625b9421aa116858627038.png

Для этого мы можем использовать addMergeRegion для объединения нескольких ячеек, определенных CellRangeAddress . Есть два способа задать диапазон ячеек. Во-первых, мы можем использовать четыре индекса с отсчетом от нуля, чтобы определить положение верхней левой ячейки и положение нижней правой ячейки:

sheet = // existing Sheet setup
int firstRow = 0;
int lastRow = 0;
int firstCol = 0;
int lastCol = 2
sheet.addMergedRegion(new CellRangeAddress(firstRow, lastRow, firstCol, lastCol));

Мы также можем использовать строку ссылки на диапазон ячеек для предоставления объединенной области:

sheet = // existing Sheet setup
sheet.addMergedRegion(CellRangeAddress.valueOf("A1:C1"));

Если в ячейках есть данные до того, как мы их объединим, Excel будет использовать значение верхней левой ячейки в качестве значения объединенной области. Для других ячеек Excel отбросит их данные.

Когда мы добавляем несколько объединенных областей в файл Excel, мы не должны создавать никаких перекрытий. В противном случае Apache POI вызовет исключение во время выполнения.

4. Резюме

В этой быстрой статье мы показали, как объединить несколько ячеек с Apache POI. Мы также обсудили два способа определения объединенной области.

Как всегда, исходный код статьи доступен на GitHub .