EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充
- 1、填充数据然后将文件输出给浏览器
1、填充数据然后将文件输出给浏览器
官网地址
官网的demo填充生成的是file文件, 实际需求用的最多的是 填充完数据将Excel输出给浏览器
填充模版Excel文件用的是官方的: 地址: https://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/resources/fill/complex.xlsx
示例代码来自官方的 复杂填充
代码改造,官网地址: http服务器托管网s://github.com/alibaba/easyexcel/blob/master/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/fill/FillTest.java
/*
* 构建数据
*/
private ListFillData> data() {
ListFillData> list = ListUtils.newArrayList();
for (int i = 0; i 10; i++) {
FillData fillData = new FillData();
list.add(fillData);
fillData.setName("张三");
fillData.setNumber(5.2);
fillData.setDate(new Date());
}
return list;
}
public void complex(HttpServletRequest request, HttpServletResponse response) throws ServiceException, IOException {
// 模版所在路径,将官方文件下载下来
File template= "F:complexFilescomplex.xlsx";
// EasyExcel没有提供填充数据 Excel流下载。需要自己实现
// 创建一个 字节数组输出流,填充数据到字节数组流,然后在输出给浏览器
ByteArrayOutputStream os = new ByteArrayOutputStream();
try (ExcelWriter excelWriter = EasyExcel.write(os).withTemplate(template).build()) {
WriteSheet writeSheet = EasyExcel.writerSheet().build();
// 填充列表数据
excelWriter.fill(data(), writeSheet);
// 写入list之前的数据
MapString, Object> map = MapUtils.newHashMap();
map.put("date", "2019年10月9日13:28:28");
map.put("total", 1000);
excelWriter.fill(map, writeSheet);
// 刷新
excelWriter.finish();
// 直接输出文件
// response.getOutputStream().write(os.toByteArray());
// response.getOutputStream().flush();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(response.getOutputStream(), 8152);
bufferedOutputStre服务器托管网am.write(os.toByteArray());
bufferedOutputStream.close();
// 或者使用GZIP压缩输出,但是需要服务器支持
// OutputStream outputStream = response.getOutputStream();
// GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
// // 或者
// DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(outputStream);
// deflaterOutputStream.write(os.toByteArray());
// deflaterOutputStream.finish();
// deflaterOutputStream.close();
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
前言 上一篇文章python实现百钱百鸡问题,用for循环实现了百钱百鸡的经典问题,文末简单说了下优化版的大体思路,这篇文章实现下。 功能实现 要求根据用户输入的购买钱数、公鸡、母鸡和小鸡的数量(小鸡按照3只作为一个整体来售卖,公鸡和母鸡都是按照一只来售卖),…