导出Excel时,有时需要设置列自动换行来适应较长的单元格内容。在Java中,可以使用Apache POI库来实现这一功能。本文将介绍如何使用Apache POI来导出Excel并设置列自动换行。

首先,我们需要在项目中引入Apache POI库的依赖。可以在pom.xml文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
</dependencies>

接下来,我们可以编写一个方法来导出Excel并设置列自动换行。在这个例子中,我们将导出一个包含学生姓名和成绩的表格,并设置成绩列自动换行。

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelExporter {

    public void exportDataToExcel() throws IOException {
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();

        // 创建工作表
        Sheet sheet = workbook.createSheet("成绩表");

        // 创建表头
        Row headerRow = sheet.createRow(0);
        Cell headerCell1 = headerRow.createCell(0);
        Cell headerCell2 = headerRow.createCell(1);
        headerCell1.setCellValue("姓名");
        headerCell2.setCellValue("成绩");

        // 创建数据行
        Row dataRow = sheet.createRow(1);
        Cell dataCell1 = dataRow.createCell(0);
        Cell dataCell2 = dataRow.createCell(1);
        dataCell1.setCellValue("张三");

        // 设置成绩列自动换行
        CellStyle wrapCellStyle = workbook.createCellStyle();
        wrapCellStyle.setWrapText(true);
        dataCell2.setCellStyle(wrapCellStyle);
        dataCell2.setCellValue("90分以上的内容都会自动换行显示在单元格内,以适应较长的内容");

        // 调整列宽以适应内容
        sheet.autoSizeColumn(0);
        sheet.autoSizeColumn(1);

        // 保存Excel文件
        FileOutputStream fileOut = new FileOutputStream("成绩表.xlsx");
        workbook.write(fileOut);
        fileOut.close();

        // 关闭工作簿
        workbook.close();
    }

    public static void main(String[] args) {
        ExcelExporter exporter = new ExcelExporter();
        try {
            exporter.exportDataToExcel();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个工作簿和工作表。然后,我们创建了表头和数据行,并设置了成绩列的自动换行样式。最后,我们调整列宽以适应内容,并保存导出的Excel文件。

注意到我们使用了setWrapText(true)方法来设置单元格的自动换行。这会使得当单元格内容较长时,自动将内容换行显示在单元格内。

最后,我们可以调用autoSizeColumn()方法来自动调整列宽以适应内容。这样可以确保单元格内容完整可见。

以上就是使用Apache POI来导出Excel并设置列自动换行的方案。通过这种方式,我们可以轻松地处理较长的单元格内容,使其在Excel中自动换行显示。