alibaba / easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具
https://easyexcel.opensource.alibaba.com
Apache License 2.0
32.09k stars 7.5k forks source link

使用【不创建对象的写】创建多级表头,如何指定第三行的相同列不自动合并。 #3863

Open Maledingda opened 3 months ago

Maledingda commented 3 months ago

问题描述

image

Maledingda commented 3 months ago

期望的效果:image

psxjoy commented 3 months ago
EasyExcel.write(fileName).head(head())
                //不自动合并表头
                .automaticMergeHead(false)
                .sheet("模板").doWrite(dataList());
psxjoy commented 3 months ago

没看清要求,这种指定标题行合并,需要单独处理了。最简单的就是把它当作数据来写入。

Maledingda commented 3 months ago

没看清要求,这种指定标题行合并,需要单独处理了。最简单的就是把它当作数据来写入。

这种自定义单元格合并规则是如何实现的呢,有案例吗?我昨天尝试了下,没有成功。

LSL1618 commented 3 months ago
List<List<String>> exportHeader = Lists.newArrayList();
exportHeader.addAll(Lists.newArrayList("国家标准“三保”支出", "合计", "需求数"));// 这里表示第1列中,第1、2、3行表头
exportHeader.addAll(Lists.newArrayList("国家标准“三保”支出", "保基本民生", "需求数"));// 这里表示第2列中,第1、2、3行表头
exportHeader.addAll(Lists.newArrayList("国家标准“三保”支出", "保工资", "需求数"));// 这里表示第3列中,第1、2、3行表头
exportHeader.addAll(Lists.newArrayList("国家标准“三保”支出", "保运转", "需求数"));// 这里表示第4列中,第1、2、3行表头
EasyExcel.write(response.getOutputStream()).sheet(sheetName).head(exportHeader).doWrite(exportBody);