Contents

Apache POI 将多行文本添加到单元格中

1.简介

我们可以使用 Apache POI 在 Microsoft Excel 电子表格中以编程方式创建多行文本。但是,它不会显示为多行。这是因为使用代码向单元格添加文本不会自动调整单元格高度并应用所需的格式将其转换为多行文本。

这个简短的教程将演示正确显示此类文本所需的代码。

2. Apache POI 和 Maven 依赖

Apache POI 是一个开源库,允许软件开发人员创建和操作 Microsoft Office 文档。作为先决条件,读者可以参考我们关于在 Java 中使用 Microsoft Excel 的文章以及关于如何使用 Apache POI 在 Excel 中插入行 的教程。

首先,我们首先需要将Apache POI  依赖项添加到我们的项目 pom.xml 文件中:

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

3. 添加和格式化多行文本

让我们从一个包含多行文本的单元格开始:

cell.setCellValue("Hello \n world!");

如果我们要使用上面的代码生成并保存一个 Excel 文件。它将如下图所示:

/uploads/apache_poi_write_multiline_text/1.png

我们可以点击上图中的 1 和 2 来验证文本确实是多行文本。

使用代码格式化单元格并将其行高扩展为等于或大于两行文本的任何值:

cell.getRow()
  .setHeightInPoints(cell.getSheet().getDefaultRowHeightInPoints() * 2);

之后,我们需要设置单元格样式来换行:

CellStyle cellStyle = cell.getSheet().getWorkbook().createCellStyle();
cellStyle.setWrapText(true);
cell.setCellStyle(cellStyle);

保存使用上述代码生成的文件并在 Microsoft Excel 中查看它会在单元格中显示多行文本。

/uploads/apache_poi_write_multiline_text/3.png