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

Java操作Excel文件最常用的方式是使用Apache POI和EasyExcel。两者都能实现对Excel的读写,但适用场景略有不同。下面分别介绍它们的基本用法和特点。
1. 使用Apache POI读写Excel
Apache POI是Apache基金会提供的开源库,支持读写Microsoft Office格式文件,包括Excel(.xls和.xlsx)。
核心依赖:
在Maven项目中添加以下依赖:
对于XLS(2003格式):
立即学习“Java免费学习笔记(深入)”;
poi: 最基础的包
对于XLSX(2007+格式):
poi-ooxml: 支持xlsx格式
完整依赖示例:
org.apache.poi poi-ooxml 5.2.3
写入Excel示例:
巧文书
巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。
61 查看详情
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(); } } }}
2. 使用EasyExcel读写Excel
EasyExcel是阿里巴巴开源的框架,基于POI封装,解决了大文件内存溢出问题,适合处理大量数据的导入导出。
优点:内存占用低:采用SAX模式逐行读取,不将整个文件加载到内存 API简单:通过注解绑定实体类,简化代码 性能好:适合百万级数据处理核心依赖:
com.alibaba easyexcel 3.3.2
定义数据模型:
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 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(dataList -> { for (User user : dataList) { System.out.println("读取到:" + user.getName() + ", " + user.getAge()); } })).sheet().doReadAll(); }}
3. POI vs EasyExcel 如何选择?
根据实际需求决定使用哪个工具:
如果只是处理小量数据(几千行以内),结构复杂或需要样式控制,推荐使用Apache POI 如果是大批量数据导入导出(如报表、日志),注重性能和稳定性,优先选择EasyExcel EasyExcel更适合Web应用中的上传下载场景 POI更灵活,可以精确控制单元格样式、合并、图表等高级功能基本上就这些。两种方式各有优势,理解清楚后按需选择即可。
以上就是java怎么操作Excel文件 通过POI或EasyExcel读写Excel文件的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/296554.html
微信扫一扫
支付宝扫一扫