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 иногда требуется отобразить строку в двух или более ячейках. Например, мы можем объединить несколько ячеек по горизонтали, чтобы создать заголовок таблицы, охватывающий несколько столбцов:
Для этого мы можем использовать 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 .