最近项目碰到了这样的需求,查阅了一些资料,使用了POI,结合自己的需求整理了下,相关的全部代码可在文章末尾处点击 百度网盘 下载。
————————————————————————操作环境如下——————————————————————————
类别 | 名称 | 简介 |
编译器软件 | IDEA | Java编程语言开发的集成环境 |
Jar包管理 | maven | 可通过小段描述信息来管理项目的构建 |
想要达成的目标:
根据得到的数据,生成对应的Excel文件(也适用于前端传数据,后端根据数据生成Excel文件)。
————————————————————————实际操作———————————————————————————
首先,说明下,本示例是按照顺序,一行行执行写入的,因此,先确定下数据格式。在这里,本次对数据格式最终要求为 List<List<Map>> ,数据中不区分表头和表数据。
简单解释下,List<List<Map>>则为全部数据的集合。List<Map>为一行的数据,合并单元格的数据已首次的行数为准。Map 中存储单元格的相关信息,需要的属性如下:
- text:单元格数据;
- row:所占的行数值,一般为1,大于1则视为需要合并单元格;
- col:所占的列数值,一般为1,大于1则视为需要合并单元格;
- cell:单元格宽度。
数据示例如下,数据实际列总数数为5列:
[
[
{text="单位",row=2,col=1,cell=280},
{text="部门",row=1,col=3,cell=600},
{text="总财报",row=1,col=1,cell=200}
],
[
{text="销售一部财报",row=1,col=1,cell