服务器测评网
我们一直在努力

Java中怎么用代码写入Excel文件?新手必看步骤详解

Java中怎么写入Excel文件

在Java开发中,操作Excel文件是一项常见需求,尤其是在数据导出、报表生成等场景,Apache POI和JXL是Java操作Excel的两大主流库,其中Apache POI功能更全面,支持.xls(Excel 2003)和.xlsx(Excel 2007+)格式,而JXL仅支持.xls格式,本文将详细介绍如何使用Apache POI库实现Excel文件的写入操作,包括基础用法、样式设置、大数据量处理等关键内容。

Java中怎么用代码写入Excel文件?新手必看步骤详解

环境准备与依赖引入

在使用Apache POI之前,需在项目中添加相关依赖,以Maven为例,在pom.xml中引入以下依赖:

<dependencies>  
    <!-- POI核心依赖 -->  
    <dependency>  
        <groupId>org.apache.poi</groupId>  
        <artifactId>poi</artifactId>  
        <version>5.2.3</version>  
    </dependency>  
    <!-- 支持.xlsx格式 -->  
    <dependency>  
        <groupId>org.apache.poi</groupId>  
        <artifactId>poi-ooxml</artifactId>  
        <version>5.2.3</version>  
    </dependency>  
</dependencies>  

若使用Gradle,可通过implementation 'org.apache.poi:poi:5.2.3'implementation 'org.apache.poi:poi-ooxml:5.2.3'引入。

基础写入操作:创建Excel并填充数据

创建工作簿与工作表

Apache POI通过Workbook接口表示Excel工作簿,HSSFWorkbook对应.xls格式,XSSFWorkbook对应.xlsx格式,以下是创建工作簿和工作表的代码示例:

Java中怎么用代码写入Excel文件?新手必看步骤详解

import org.apache.poi.xssf.usermodel.XSSFWorkbook;  
import org.apache.poi.ss.usermodel.Sheet;  
import org.apache.poi.ss.usermodel.Workbook;  
import java.io.FileOutputStream;  
public class ExcelWriteExample {  
    public static void main(String[] args) throws Exception {  
        // 创建XSSFWorkbook对象(.xlsx格式)  
        Workbook workbook = new XSSFWorkbook();  
        // 创建工作表,名为"Sheet1"  
        Sheet sheet = workbook.createSheet("Sheet1");  
        // 其他操作...  
        // 写入文件并关闭资源  
        try (FileOutputStream fos = new FileOutputStream("output.xlsx")) {  
            workbook.write(fos);  
        }  
        workbook.close();  
    }  
}  

写入单元格数据

通过RowCell对象操作Excel的行和单元格,以下为向指定单元格写入数据的示例:

// 创建第1行(索引从0开始)  
Row row = sheet.createRow(0);  
// 在第1行第1列创建单元格并写入字符串  
Cell cell1 = row.createCell(0);  
cell1.setCellValue("姓名");  
// 在第1行第2列写入数字  
Cell cell2 = row.createCell(1);  
cell2.setCellValue(25);  
// 写入日期(需设置单元格格式)  
CreationHelper createHelper = workbook.getCreationHelper();  
Cell cell3 = row.createCell(2);  
cell3.setCellValue(createHelper.createCreationDate());  

样式设置:美化Excel内容

设置单元格样式

通过CellStyle可调整字体、颜色、边框等样式,例如设置字体加粗和背景色:

// 创建字体样式  
Font font = workbook.createFont();  
font.setBold(true);  
font.setFontHeightInPoints((short) 14);  
// 创建单元格样式并应用字体  
CellStyle style = workbook.createCellStyle();  
style.setFont(font);  
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());  
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);  
// 将样式应用到单元格  
cell1.setCellStyle(style);  

设置列宽与自动换行

// 设置第1列宽度(字符数)  
sheet.setColumnWidth(0, 5000);  
// 设置单元格自动换行  
CellStyle wrapStyle = workbook.createCellStyle();  
wrapStyle.setWrapText(true);  
cell2.setCellStyle(wrapStyle);  

大数据量处理:优化内存使用

当处理大量数据时(如10万行以上),直接使用XSSFWorkbook可能导致内存溢出,此时可采用SXSSFWorkbook(流式API)进行优化:

Java中怎么用代码写入Excel文件?新手必看步骤详解

import org.apache.poi.xssf.streaming.SXSSFWorkbook;  
// 创建SXSSFWorkbook,参数为内存中保留的行数(超过部分写入临时文件)  
Workbook workbook = new SXSSFWorkbook(100);  
Sheet sheet = workbook.createSheet("BigDataSheet");  
// 写入数据(循环中创建行和单元格)  
for (int i = 0; i < 100000; i++) {  
    Row row = sheet.createRow(i);  
    row.createCell(0).setCellValue("Row " + i);  
}  
// 写入文件并清理临时文件  
try (FileOutputStream fos = new FileOutputStream("big_data.xlsx")) {  
    workbook.write(fos);  
}  
((SXSSFWorkbook) workbook).dispose(); // 删除临时文件  

异常处理与资源关闭

操作Excel文件时需注意异常处理和资源释放,建议使用try-with-resources语句:

try (Workbook workbook = new XSSFWorkbook();  
     FileOutputStream fos = new FileOutputStream("output.xlsx")) {  
    // 写入数据逻辑  
    workbook.write(fos);  
} catch (IOException e) {  
    e.printStackTrace();  
}  

Java中写入Excel文件的核心步骤包括:创建工作簿/工作表、填充单元格数据、设置样式、处理大数据量,Apache POI提供了丰富的API支持,通过合理选择HSSFWorkbookXSSFWorkbookSXSSFWorkbook,可满足不同场景的需求,实际开发中,还需结合业务需求调整格式、样式,并注意内存管理和异常处理,以确保程序稳定性和性能。

赞(0)
未经允许不得转载:好主机测评网 » Java中怎么用代码写入Excel文件?新手必看步骤详解