全球中文网站排名天价索赔背后的平台版权对垒
news/
2025/9/24 6:53:54/
文章来源:
全球中文网站排名,天价索赔背后的平台版权对垒,怎样自己创网站,网页设计制作与代码整体素材一、介绍
在上篇文章中#xff0c;我们介绍了 apache poi 工具实现 excel 文件的导入导出。
本篇我们继续深入介绍另一款优秀的 excel 工具库#xff1a;easypoi。
二、easypoi
以前的以前#xff0c;有个大佬程序员#xff0c;跳到一家公司之后就和业务人员聊上了我们介绍了 apache poi 工具实现 excel 文件的导入导出。
本篇我们继续深入介绍另一款优秀的 excel 工具库easypoi。
二、easypoi
以前的以前有个大佬程序员跳到一家公司之后就和业务人员聊上了这些业务员对excel报表有着许许多多的要求比如想要一个报表他的表头是一个多行表头过几天之后他想要给这些表头添加样式比如关键的数据标红再过几天他想要再末尾添加一条合计的数据等等
起初还好都是copy、copy之后发现系统中出现大量的重复代码于是有一天真的忍受不了了采用注解搞定来搞定这些定制化成程度高的逻辑将公共化抽离出来于是诞生了 easypoi
easypoi 的底层也是基于 apache poi 进行深度开发的它主要的特点就是将更多重复的工作全部简单化避免编写重复的代码
下面我们就一起来了解一下这款高大上的开源工具easypoi
3.1、首先添加依赖包
dependenciesdependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-base/artifactIdversion4.1.0/version/dependencydependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-web/artifactIdversion4.1.0/version/dependencydependencygroupIdcn.afterturn/groupIdartifactIdeasypoi-annotation/artifactIdversion4.1.0/version/dependency
/dependencies3.2、采用注解导出导入
easypoi 最大的亮点就是基于注解实体类来导出、导入excel使用起来非常简单
首先我们创建一个实体类UserEntity其中Excel注解表示导出文件的头部信息。
public class UserEntity {Excel(name 姓名)private String name;Excel(name 年龄)private int age;Excel(name 操作时间,formatyyyy-MM-dd HH:mm:ss, width 20.0)private Date time;//set、get省略
}接着我们来编写导出服务
public static void main(String[] args) throws Exception {ListUserEntity dataList new ArrayList();for (int i 0; i 10; i) {UserEntity userEntity new UserEntity();userEntity.setName(张三 i);userEntity.setAge(20 i);userEntity.setTime(new Date(System.currentTimeMillis() i));dataList.add(userEntity);}//生成excel文档Workbook workbook ExcelExportUtil.exportExcel(new ExportParams(用户,用户信息),UserEntity.class, dataList);FileOutputStream fos new FileOutputStream(/Users/hello/Documents/easypoi-user1.xls);workbook.write(fos);fos.close();
}导出的文件预览如下 对应的导入操作也很简单源码如下
public static void main(String[] args) {ImportParams params new ImportParams();params.setTitleRows(1);params.setHeadRows(1);long start new Date().getTime();ListStudentEntity list ExcelImportUtil.importExcel(new File(/Users/hello/Documents/easypoi-user1.xls),UserEntity.class, params);System.out.println(new Date().getTime() - start);System.out.println(JSONArray.toJSONString(list));
}运行程序输出结果如下
[{age:20,name:张三0,time:1616919493000},{age:21,name:张三1,time:1616919493000},{age:22,name:张三2,time:1616919493000},{age:23,name:张三3,time:1616919493000},{age:24,name:张三4,time:1616919493000},{age:25,name:张三5,time:1616919493000},{age:26,name:张三6,time:1616919493000},{age:27,name:张三7,time:1616919493000},{age:28,name:张三8,time:1616919493000},{age:29,name:张三9,time:1616919493000}]3.3、自定义数据结构导出导入
easypoi 同样也支持自定义数据结构导出导入excel。
自定义数据导出 excel
public static void main(String[] args) throws Exception {//封装表头ListExcelExportEntity entityList new ArrayListExcelExportEntity();entityList.add(new ExcelExportEntity(姓名, name));entityList.add(new ExcelExportEntity(年龄, age));ExcelExportEntity entityTime new ExcelExportEntity(操作时间, time);entityTime.setFormat(yyyy-MM-dd HH:mm:ss);entityTime.setWidth(20.0);entityList.add(entityTime);//封装数据体ListMapString, Object dataList new ArrayList();for (int i 0; i 10; i) {MapString, Object userEntityMap new HashMap();userEntityMap.put(name, 张三 i);userEntityMap.put(age, 20 i);userEntityMap.put(time, new Date(System.currentTimeMillis() i));dataList.add(userEntityMap);}//生成excel文档Workbook workbook ExcelExportUtil.exportExcel(new ExportParams(学生,用户信息), entityList, dataList);FileOutputStream fos new FileOutputStream(/Users/panzhi/Documents/easypoi-user2.xls);workbook.write(fos);fos.close();
}导入 excel
public static void main(String[] args) {ImportParams params new ImportParams();params.setTitleRows(1);params.setHeadRows(1);long start new Date().getTime();ListMapString, Object list ExcelImportUtil.importExcel(new File(/Users/panzhi/Documents/easypoi-user2.xls),Map.class, params);System.out.println(new Date().getTime() - start);System.out.println(JSONArray.toJSONString(list));
}更多的 api 操作可以访问 Easypoi - 接口文档
三、小结
总体来说easypoi 在读写数据的时候优先是先将数据写入内存优点是读写性能非常高但是当数据量很大的时候会出现oom当然它也提供了 sax 模式的读写方式需要调用特定的方法实现。
四、参考
1、apache poi - 接口文档
2、easypoi - 接口文档
3、easyexcel - 接口文档
写到最后
不会有人刷到这里还想白嫖吧点赞对我真的非常重要在线求赞。加个关注我会非常感激
本文已整理到技术笔记中此外笔记内容还涵盖 Spring、Spring Boot/Cloud、Dubbo、JVM、集合、多线程、JPA、MyBatis、MySQL、微服务等技术栈。 需要的小伙伴可以点击 技术笔记 获取
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915128.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!