java 如何创建.xlsx
创建 .xlsx 文件的方法
使用 Apache POI 库可以轻松创建 Excel 文件(.xlsx 格式)。Apache POI 提供了对 Microsoft Office 格式文件的读写支持。
添加依赖
在 Maven 项目中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
基本创建步骤
创建工作簿和工作表:
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
// 创建新的工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建工作表
XSSFSheet sheet = workbook.createSheet("Sheet1");
写入数据
创建行和单元格并写入数据:
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;
// 创建行(从0开始)
XSSFRow row = sheet.createRow(0);
// 创建单元格并设置值(从0开始)
XSSFCell cell = row.createCell(0);
cell.setCellValue("Hello");
row.createCell(1).setCellValue("World");
保存文件
将工作簿写入文件:
import java.io.FileOutputStream;
import java.io.IOException;
try (FileOutputStream outputStream = new FileOutputStream("example.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
} finally {
workbook.close();
}
完整示例代码
import org.apache.poi.xssf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelCreator {
public static void main(String[] args) {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Data");
// 创建标题行
XSSFRow headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Age");
// 创建数据行
XSSFRow dataRow = sheet.createRow(1);
dataRow.createCell(0).setCellValue(1);
dataRow.createCell(1).setCellValue("John Doe");
dataRow.createCell(2).setCellValue(30);
// 保存文件
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
System.out.println("Excel文件创建成功");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
高级功能
设置单元格样式:
import org.apache.poi.ss.usermodel.*;
// 创建字体
Font font = workbook.createFont();
font.setBold(true);
font.setColor(IndexedColors.RED.getIndex());
// 创建单元格样式
CellStyle style = workbook.createCellStyle();
style.setFont(font);
// 应用样式
cell.setCellStyle(style);
设置列宽:

sheet.setColumnWidth(0, 5000); // 设置第一列宽度为5000单位






