Contents

Apache POI合并Excel中的单元格

1. 概述

在本教程中,我们将展示如何将Excel 中的单元格与 Apache POI 合并。

2. Apache 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 中,我们有时希望在两个或多个单元格中显示一个字符串。例如,我们可以将多个单元格水平合并以创建一个跨多列的表格标题:

/uploads/java_apache_poi_merge_cells/1.png

为此,我们可以使用addMergedRegion 来合并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 将在运行时抛出异常。