用easypoi读取模板excel并用foreach存入数据,多层表头/乱七八糟表头
咋说呢,用map被总监说了,大概就是人家想修改名称跟顺序的时候都要改程序,太麻烦了(我咋知道人家还要修改模板的= =,模板难道不是定死的吗,没事改一改?)然后就用easypoi再写一份,正好下面分享一下
private Workbook exportSheetByTemplate(List<ExcelExport> list) {
// 设置导出配置
// 获取导出excel指定模版
String path = 这里放地址;
TemplateExportParams params = new TemplateExportParams(path);
Map<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
return ExcelExportUtil.exportExcel(params, map);
}
public String exportExcel(String title, HttpServletResponse response, List<ExcelExport> list) {
// 获取workbook对象
Workbook workbook = exportSheetByTemplate(list);
// getBaseCellStyle(workbook);
// 判断数据
if (workbook == null) {
return "1";
}
// 设置excel的文件名称
String fileName = title + ".xlsx";
// 重置响应对象
response.reset();
try {
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
response.setContentType("text/html;charset=utf-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
// 写出数据输出流到页面
try {
OutputStream output = response.getOutputStream();
BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output);
workbook.write(bufferedOutPut);
bufferedOutPut.flush();
bufferedOutPut.close();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
return "0";
}
不知道咋这里模板里得实体写t,有没有大佬解释一下
表头是两层哈,毕竟模板随便怎么搞都行
oh差点忘记放jar包了
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.2.0</version>
</dependency>
搞起,有是写bug的一天
谁能想到每天写bug的程序员居然还要参加年会的开场舞跟部门舞,还都是我排,天,十几二十天边上班边学两个舞,以后不能说自己会跳舞了,我的特长——胸口碎大石,这总不要我表演了吧
🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟🐟