java是怎么去操作excel表格
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"java是怎么去操作excel表格"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录
千家信息网最后更新 2026年10月31日java是怎么去操作excel表格
本篇内容介绍了"java是怎么去操作excel表格"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
目录
使用场景
什么是easyExcel
写入表格
1、引入依赖
2、先创建与表对应的实体类
3、生成表格
读取表格
1、实体类 同上。
2、解析
3、测试
使用场景
1、将用户信息导出为excel表格(导出数据....)
2、将Excel表中的信息录入到网站数据库(习题上传....)大大减轻网站录入量!开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中!
操作Excel目前比较流行的就是Apache POI和阿里巴巴的easyExcel !
这里我们主要使用easyExcel进行操作
什么是easyExcel
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。
官网:EasyExcel · 语雀 (yuque.com)
一个excel表格由工作簿、工作表、行、列组成
写入表格

1、引入依赖
com.alibaba easyexcel 2.2.0-beta2 com.alibaba fastjson 1.2.54 org.projectlombok lombok 1.18.20 joda-time joda-time 2.10.10 junit junit 4.13.2
2、先创建与表对应的实体类
@Datapublic class DemoData { @ExcelProperty("字符串标题") private String string; @ExcelProperty("日期标题") private Date date; @ExcelProperty("数字标题") private Double doubleData; /** * 忽略这个字段 */ @ExcelIgnore private String ignore;}3、生成表格
private Listdata() { List list = new ArrayList (); for (int i = 0; i < 10; i++) { DemoData data = new DemoData(); data.setString("字符串" + i); data.setDate(new Date()); data.setDoubleData(0.56); list.add(data); } return list; } //根据list 写入excel @Test public void simpleWrite() { String path = "D:\\qdSystem\\Resources\\下载\\"; // 写法1 String fileName = path + "qiadnu.xlsx"; // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭 EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data()); }
读取表格
1、实体类 同上。
2、解析
// 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去public class DemoDataListener extends AnalysisEventListener{ private static final Logger LOGGER = LoggerFactory.getLogger(DemoDataListener.class); /** * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收 */ private static final int BATCH_COUNT = 5; List list = new ArrayList (); /** * 假设这个是一个DAO,当然有业务逻辑这个也可以是一个service。当然如果不用存储这个对象没用。 */ private DemoDAO demoDAO; public DemoDataListener() { // 这里是demo,所以随便new一个。实际使用如果到了spring,请使用下面的有参构造函数 demoDAO = new DemoDAO(); } /** * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来 * * @param demoDAO */ public DemoDataListener(DemoDAO demoDAO) { this.demoDAO = demoDAO; } /** * 这个每一条数据解析都会来调用 * @param context */ @Override public void invoke(DemoData data, AnalysisContext context) { LOGGER.info("解析到一条数据:{}", JSON.toJSONString(data)); list.add(data); // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM if (list.size() >= BATCH_COUNT) { saveData(); // 存储完成清理 list list.clear(); } } /** * 所有数据解析完成了 都会来调用 * * @param context */ @Override public void doAfterAllAnalysed(AnalysisContext context) { // 这里也要保存数据,确保最后遗留的数据也存储到数据库 saveData(); LOGGER.info("所有数据解析完成!"); } /** * 加上存储数据库 */ private void saveData() { LOGGER.info("{}条数据,开始存储数据库!", list.size()); demoDAO.save(list); LOGGER.info("存储数据库成功!"); }}
Dao层
/** * 假设这个是你的DAO存储。当然还要这个类让spring管理,当然你不用需要存储,也不需要这个类。 **/public class DemoDAO { public void save(List list) { // 如果是mybatis,尽量别直接调用多次insert,自己写一个mapper里面新增一个方法batchInsert,所有数据一次性插入 }} 3、测试
@Test public void simpleRead() { // 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去 // 写法1: String fileName = path + "qiadnu.xlsx"; // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭 EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead(); }"java是怎么去操作excel表格"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数据
表格
存储
数据库
内存
实体
方法
管理
实际
标题
网站
重要
不用
信息
内容
写法
场景
字符
字符串
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州大一互联网络科技有限公司
互联网科技公司华为
互联网科技公司的优势
互联网科技的
万易互联网科技
期待互联网科技
互联网科技股票
奇酷互联网科技公司
火传媒上海互联网科技
互联网金融 科技创新
隆华科技工业互联网
哈尔滨新华互联网科技学院
互联网科技实习生岗位职责
互联网科技中介
徐州市互联网科技有限公司
山东星卡互联网科技有限公司官网
广州富喜互联网络科技
美国互联网科技公司
版纳互联网科技选哪家
求路客互联网科技电话
互联网科技企业
河南云网互联网络科技有限公司
科技互联网政务服务
杭州互联网科技公司
丰台科技园 互联网公司
互联网科技创新企业排名
华夏恒生科技与互联网科技
盐城市攀科互联网科技有限公司
数字科技和互联网金融哪个好
互联网科技创业有什么好项目