阿里EasyExcel
EasyExcelEasyExcel特点Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。 EasyExcel是阿里巴巴开源的一个excel处理框架, 以使用简单、节省内存著称 。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。 EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。 Excel导入导出的应用场景 1、数据导入:减轻录入工作量 2、数据导出:统计信息归档 3、数据传输:异构系统之间的数据传输 引入依赖 com.alibaba easyexcel 3.0.5 简单读Excel格式
创建实体类 import lombok.Data; @Data public class easy { //字段名自己设定 private int id; private String className; private String sno; private String name; private String path; private String filename; private String fileLine; }创建监听类 import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.it.entity.easy; import java.util.Map; public class ExcelListener extends AnalysisEventListener { //一行一行读取excel内容 @Override public void invoke(easy data, AnalysisContext analysisContext) { System.out.println(data); } //读取表头内容 @Override public void invokeHeadMap(Map headMap, AnalysisContext context) { System.out.println("表头:"+headMap); } //读取完成之后 @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }进行使用
方法1 @Test void contextLoads() { // 写法1,这种写法简单 String fileName = "E:easy.xlsx"; // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭 EasyExcel.read(fileName, easy.class, new ExcelListener()).sheet().doRead(); }
方法2 @Test public void readExcel() throws FileNotFoundException { InputStream in = new BufferedInputStream(new FileInputStream("E:easy.xlsx")); //easy是实体类 ExcelReader excelReader = EasyExcel.read(in, easy.class, new ExcelListener()).build(); ReadSheet readSheet = EasyExcel.readSheet(0).build(); excelReader.read(readSheet); // 这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的 excelReader.finish(); }简单写
实体类已经在上面弄过了,这边直接用即可。写操作不用写监听 public static void main(String[] args) { String fileName = "E:easy.xlsx"; EasyExcel.write(fileName,easy.class).sheet("工作表1").doWrite(data()); } private static List data() { List list = new ArrayList<>(); easy e = new easy(); e.setId(167); e.setClassName("专硕5班"); e.setSno("yj20201211"); e.setName("LLL"); e.setPath("storageinnobasedict"); e.setFilename("dict0dict.c"); e.setFileLine("4531-5048"); list.add(e); return list; }
这个男人宅家必备玩具火了!小米有品上架半天筹得40万,用户爽小米有品又出爆品了!近期,小米有品的众筹平台上又一款众筹品火了一款健身单车上架仅不足一天,就筹得了40万。为什么看似很普通的健身单车,能被米粉相中纷纷支持,成为众筹爆品了呢?原来,
以高温,高压,密封,旋转零部件为核心的实验以高温,高压,密封,旋转零部件为核心的实验高温,高压,密封,旋转零部件的地铁工程用途。地球地表的岩石等固体,原子核不自旋,电子自旋,固体是靠自旋的电子粘合在一起的,我们只要停止了电
什么是dApp安全?不幸的是,分散式应用程序的系统设置使它们在某些情况下容易受到黑客的攻击。由于dApps在开源智能合约上运行,黑客有一条途径进入网络,找到一个关键弱点,使他们能够潜入区块链。智能合约
58同城安居客助力培育优质保姆保障保姆服务有效供给近日,月嫂平均工资15000元话题冲上微博热搜,再度引发网友对好保姆难求的热议。围绕用户需求,58同城到家精选推出专业保洁保姆服务。据了解,58同城到家精选拥有百万阿姨简历库,从流
这是你想要的未来感空间吗?哪吒S邀你进入科技感座舱4月11日,哪吒汽车发布基于山海平台打造的首款运动型轿跑哪吒S内饰草图,进一步揭开了其神秘面纱。作为行业首个全栈自研的智能安全汽车平台,山海平台集高安全高拓展性高智能以及环境友好诸
AI陪伴软件侵害人格权案最高人民法院发布民法典颁布后人格权司法保护典型民事案例案例四人工智能软件擅自使用自然人形象创设虚拟人物构成侵权AI陪伴软件侵害人格权案一简要案情被告运营某款智能手机记账软件,在该软
浪潮信息首季净利润预计增长30。0050。00浪潮信息(000977)4月11日发布首季业绩预增公告,预计实现净利润为3。14亿元3。62亿元,净利润同比增长30。0050。00。业绩变动原因报告期内,受益于下游市场需求拉动,
实时显示车位剩余数量朝阳重点商圈2。7万余个停车位数据接入高德地图北京商报讯(记者杨月涵)4月11日,记者自朝阳区获悉,日前,位于朝阳区的北京CBD蓝色港湾合生汇等重点商圈41个停车场2。7万余个停车位的数据接入高德地图,地图上可实时显示这些停车
高配20G512G,中兴Axon40迎来好消息,多少人在期待?中兴的手机已经受到很多用户重新认可,为什么说重新认可呢?其实原因很简单,很长一段时间内,中兴智能机其实是和主流小米OV荣耀等脱节的,基本上从用户视野中消失了。但这两年以来,中兴加大
重新定义工业互联网我们认为,是时候需要重新定义工业互联网了!工业互联网的内涵应该是工业智能制造消费互联网。观察行业里现在的工业互联网,无外乎按两个定义在做,狭义的讲,把工业互联网做成了工厂物联网,比
bebird三合一可视采耳仪耳膜马杀鸡,采耳更清晰前言采耳越来越受到人们的喜爱,近年来采耳掀起了一场风暴,大有全民普及之趋势。可视采耳仪相比于传统掏耳勺清洁效率无疑高出很多,可视采耳仪可以将存留在耳道里盲区的耳屎能完全清理干净,很