答案:Java操作Excel常用Apache POI和EasyExcel,前者适合小数据量及样式控制,后者适用于大数据量高性能场景。

Java操作Excel文件最常用的方式是使用Apache POI和EasyExcel。两者都能实现对Excel的读写,但适用场景略有不同。下面分别介绍它们的基本用法和特点。
Apache POI是Apache基金会提供的开源库,支持读写Microsoft Office格式文件,包括Excel(.xls和.xlsx)。
核心依赖:在Maven项目中添加以下依赖:
对于XLS(2003格式):
立即学习“Java免费学习笔记(深入)”;
对于XLSX(2007+格式):
完整依赖示例:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
写入Excel示例:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
public class WriteExcel {
public static void main(String[] args) throws Exception {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("用户数据");
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("姓名");
header.createCell(1).setCellValue("年龄");
Row row = sheet.createRow(1);
row.createCell(0).setCellValue("张三");
row.createCell(1).setCellValue(25);
try (FileOutputStream out = new FileOutputStream("users.xlsx")) {
workbook.write(out);
}
workbook.close();
}
}
读取Excel示例:
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
public class ReadExcel {
public static void main(String[] args) throws Exception {
try (FileInputStream fis = new FileInputStream("users.xlsx");
Workbook workbook = new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
default:
System.out.print("未知\t");
}
}
System.out.println();
}
}
}
}
EasyExcel是阿里巴巴开源的框架,基于POI封装,解决了大文件内存溢出问题,适合处理大量数据的导入导出。
优点:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.2</version>
</dependency>
定义数据模型:
public class User {
private String name;
private Integer age;
// getter/setter 省略
}
写入Excel:
import com.alibaba.excel.EasyExcel;
import java.util.Arrays;
import java.util.List;
public class EasyWrite {
public static void main(String[] args) {
List<User> data = Arrays.asList(
new User("李四", 30),
new User("王五", 28)
);
String fileName = "users_easy.xlsx";
EasyExcel.write(fileName, User.class).sheet("模板").doWrite(data);
}
}
读取Excel:
public class EasyRead {
public static void main(String[] args) {
String fileName = "users_easy.xlsx";
EasyExcel.read(fileName, User.class, new PageReadListener<User>(dataList -> {
for (User user : dataList) {
System.out.println("读取到:" + user.getName() + ", " + user.getAge());
}
})).sheet().doReadAll();
}
}
根据实际需求决定使用哪个工具:
以上就是java怎么操作Excel文件 通过POI或EasyExcel读写Excel文件的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号