easyexcle 设置列宽_EasyExcel之不使用对象灵活生成Excel,并且调整行高、自动列宽与自由合并...

本文介绍了如何在SpringBoot中利用EasyExcel库,不依赖对象直接将List转换为Excel并下载,同时展示了如何设置行高、自动列宽以及进行单元格合并。通过`EasyExcel.write`方法配合`LongestMatchColumnWidthStyleStrategy`实现自动调整列宽,不使用表头时可以省略`.head()`方法。此外,文章还提到了创建ExcelWriter对象来设置更多样式,如合并和行高等。
摘要由CSDN通过智能技术生成

最近小秋熊看了阿里的开源项目将EasyExcel,发现它是个很强大的工具,但是官方介绍中大部分都是使用对象,变量增加注解的方式。

本文介绍一下SpringBoot中,简单通过List生成excel并下载的方法,大家可以直接CV大法。还可以实现通过自己写样式策略来自由调整行高、自由合并。

一、将List直接导出为Excel下载

1.controller内接口写法:

@PostMapping("export") public void export(@RequestBody Map param, HttpServletResponse response){ String[] head = {"用户账户名称","版本","购买时间","购买时长(天)","支付金额"}; List> dataList = userPayDetailService.selectExportList(param); EasyExcelUtils.write(head,dataList,"用户支付明细","用户支付明细",response); }

此处head变量为excel的一行表头。

dataList 为整理好的表格内容

2.EasyExcelUtils.write 方法如下:

public static void write(String[] head, List> dataList, String sheetName, String fileName, HttpServletResponse response){ response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); try { fileName = URLEncoder.encode(fileName, "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).head(getHeadList(head)).autoCloseStream(Boolean.FALSE) .sheet(sheetName).doWrite(getDataList(dataList)); } catch (Exception e) { // 重置response response.reset(); response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); MsgResponse msgResponse = new MsgResponse(); msgResponse.setEnum(CodeEnum.EXPORT_ERROR); try { response.getWriter().println(JSON.toJSONString(msgResponse)); } catch (IOException ex) { ex.printStackTrace(); } }}

这里核心就是EasyExcel.write方法,此处紫色部分我使用了easyExcel中默认的 LongestMatchColumnWidthStyleStrategy()方法,即自动设置列宽。也可以不加。

若不需要表头,就不用加.head()

以上就可以快速将查询结果写入excel并下载了。

二、设置合并、行高等样式

要知道,EasyExcel中的写,不仅可以使用EasyExcel.write方法,直接创建一个ExcelWriter对象也一样,代码如下:

OutputStream out = response.getOutp.........

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值