Java Excel 导出:设置列宽和自动换行

在实际开发中,我们经常需要将数据导出到 Excel 文件中,同时还需要设置列宽和自动换行以确保数据的可读性。本文将介绍如何使用 Java 代码来实现这一功能。

1. 依赖库

在开始之前,我们需要添加以下依赖库来处理 Excel 文件:

<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>

2. 导出数据到 Excel 文件

首先,我们需要创建一个新的 Excel 文件,并在其中添加数据。以下是一个简单的示例代码:

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

public class ExcelExporter {

    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

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

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

        // 设置列宽
        sheet.setColumnWidth(0, 5000);
        sheet.setColumnWidth(1, 3000);

        // 设置自动换行
        CellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setWrapText(true);
        dataCell1.setCellStyle(cellStyle);
        dataCell2.setCellStyle(cellStyle);

        // 导出 Excel 文件
        try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
            workbook.write(outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("Excel 文件导出成功!");
    }
}

在上述示例代码中,我们使用 Apache POI 库来创建一个新的 Excel 文件,并在该文件中创建一个名为 "Sheet1" 的工作表。然后,我们创建表头行和数据行,并将数据写入单元格中。接下来,我们设置列宽和自动换行。最后,我们将 Excel 文件导出到本地磁盘。

3. 设置列宽

在 Excel 中,每个列的宽度是以字符宽度为单位的,默认情况下,每个字符的宽度为 1/256 个字符。要设置列宽,我们可以使用 setColumnWidth 方法,该方法接受两个参数:列索引和列宽度。例如,setColumnWidth(0, 5000) 将第一列的宽度设置为 5000 个字符宽度。在示例代码中,我们设置了第一列的宽度为 5000,第二列的宽度为 3000。

4. 设置自动换行

自动换行使得单元格中的文本可以自动适应单元格的宽度,并在需要时自动换行显示。要设置自动换行,我们需要创建一个 CellStyle 对象,并通过 setWrapText(true) 方法来启用自动换行。然后,我们将该样式应用到需要自动换行的单元格上。在示例代码中,我们创建了一个 CellStyle 对象,并将其应用到数据行的两个单元格上。

5. 结论

通过使用 Java 代码和 Apache POI 库,我们可以轻松地将数据导出到 Excel 文件中,并设置列宽和自动换行。这样,导出的 Excel 文件将更加美观和易读。希望本文能帮助到你在实际开发中处理 Excel 导出的问题。


请注意,在实际开发中,我们应该根据实际需求来设置列宽和自动换行的值,以确保数据的显示效果。