网站首页 > java教程 正文
假如我们有一个这样一个list:
List<Student> studentList
Student类的字段简述如下:
class Student {String name, String idcard, int sex, ...}
如何快速的导出为Excel呢?
我们只想提供必要的信息:表名,表格的列名,要导出的Student字段名字:
String sheetName = "测试"; String[] columnNames = {"姓名", "身份证号", "性别", ...}; String[] classFieldNames = {"name", "idcard", "sex", ...};
我只想提供这三样信息,并不想做多余的编码工作,可以吗?
当然可以,我们可以引入一个Excel工具【github.com/gaoice/easyexcel】来做这个事情:
XSSFWorkbook workbook = ExcelBuilder.createWorkbook( new SheetInfo(sheetName, columnNames, classFieldNames, studentList));
加上上面的定义,共4行代码,就可以导出一个如下形式的Excel。
这时候我们注意到性别列显示的是数字,明显不太合适,这时候怎么办呢?再加一个中文字段吗?并不用,我们有两种很简单的方式解决这个问题。
方法一:使用一个Map,做键值对映射。
SheetInfo sheetInfo = new SheetInfo(sheetName, columnNames, fieldNames, studentList); Map sexMap = new HashMap<>(); sexMap.put(1, "男生"); sexMap.put(0, "女生"); sheetInfo.putConverter("sex", sexMap);
方法二:我们只需为这个字段编写一个Lambda表达式,就可以解决这个问题了。
sheetInfo.putConverter("sex", (sheetInfo1, o, listIndex, columnIndex) -> o.equals(1) ? "男生" : "女生");
方法一适合数据简单的映射,方法二可以用来对值进行任意操作。
现在得到表格
easyexcel使用了SXSSFWorkbook,支持导出大批量数据。
更多使用方法见github的说明,感谢阅读。
猜你喜欢
- 2024-09-21 如何把excel表格处理成json数据(jason转excel)
- 2024-09-21 一个读Excel数据的小例子,提供给爱学习的Java后端开发
- 2024-09-21 快速将Excel、CSV等格式文件数据转换到java对象
- 2024-09-21 GitHub Star 8800+ 的阿里开源的 Java 解析 Excel 工具
- 2024-09-21 还在重复劳动?不如用Python自动生成Excel以邮件发送
- 2024-09-21 Java8如何让Excel的读写变得更加简单高效
- 2024-09-21 java打印Excel表格(java输出excel表格)
- 2024-09-21 整理关于java写入内容到excel的例子供大家参考
- 2024-09-21 JavaAPI开发(3)POI——如何将List转换为excel文件
- 2024-09-21 【Java程序】读取指定路径下文件夹中的文件名,生成Excel表格!
你 发表评论:
欢迎- 最近发表
-
- class版本不兼容错误原因分析(class更新)
- 甲骨文Oracle公司为Java的最新LTS版本做出改进
- 「版本发布」Minecraft Java开发版 1.19.4-pre1 发布
- java svn版本管理工具(svn软件版本管理)
- 我的世界1.8.10钻石在第几层(我的世界1.7.2钻石在哪层)
- Java开发高手必备:在电脑上轻松切换多个JDK版本
- 2022 年 Java 开发报告:Java 8 八年不到,开发者都在用什么?
- 开发java项目,选择哪个版本的JDK比较合适?
- Java版本选型终极指南:8 vs 17 vs 21特性对决!大龄程序员踩坑总结
- POI Excel导入(poi excel导入附件)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)