Java:Excel导出

处理excel的基础库:
easyPOI

Apache POI

Java Excel API

JXLS

JXLS的git地址

可根据配置好的模板生成报表

相关教程
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做导入操作

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容