处理excel的基础库:
easyPOI
可根据配置好的模板生成报表
相关教程
1.https://www.cnblogs.com/klguang/p/6425422.html
2.https://www.cnblogs.com/foxlee1024/category/1090370.html
3.https://my.oschina.net/leeck?tab=newest&catalogId=5926605
三方依赖:jxls、jxls-poi
Apache POI特点 :
1.这些库很棒,但是级别很低,因为它们要求开发人员甚至创建一个简单的 Excel 文件也要编写很多 Java 代码。
2.通常,必须手动设置电子表格的每个单元格格式和数据。根据报表布局和数据格式的复杂性,Java 代码可能变得非常复杂,并且难以调试和维护
JXLS特点
1.在 Excel 模板文件中定义所需的报告格式和数据布局
2.运行 Jxls 引擎以用数据填充模板
JXLS核心概念
XlsArea
Command
Transformer
JXLS的使用方式
基本的使用方式
1.添加依赖
2.创建模板
3.使用模板,将需要的数据填充到模板里面
模板配置
根据模板写入数据
代码示例:
//取数据
List<Employee> employees = generateSampleEmployeeData();
//取模板
InputStream is = JxlsDemoApplication.class.getClassLoader().getResourceAsStream("object_collection_template.xls");
//生成的文件
OutputStream os = new FileOutputStream("target/object_collection_output.xls");
//设置context
Context context = new Context();
context.putVar("employees", employees);
//根据模板填充数据
JxlsHelper.getInstance().processTemplate(is, os, context);
//指定sheet
JxlsHelper.getInstance().processTemplateAtCell(is, os, context, "Result!B1");
遇到的问题
问题1
No XlsArea were detected for this processing
原因:
模板页的工作簿名称是sheet1,改成Template即可
问题2
https://blog.csdn.net/weixin_43830876/article/details/106277399
问题3
如何将数据写到多个sheet中?
http://jxls.sourceforge.net/samples/multi_sheet_markup_demo.html
问题4
延伸:如何利用jxls做导入操作