背景
表格看板及导出,单元格时间年是根据筛选器时间变化的
较往年和往年是计算单元格
思路
1.通过excel模板来把数据填入excel再数据清洗得到数据返回前端
2.数据填充,通过行+列作为key
列如:key=整体+2024+1月,根据key匹配数据填入1-12月单元格
3.要求:表格时间年是动态的;计算单元格中的计算因子为空,则计算单元格为空
把动态时间设为T
计算单元格为空则为100000(不固定,自己设置),代码等于100000替换为null,此是为了读取数据返回给前端,如果纯导出不需要
4.数据量太大,导出接口超时,异步导出且发邮件链接导出
把workbook写入到输出流中,再把输出流转换成输入流,生成文件
String fileName = "文件名称.xlsx";
ByteArrayOutputStream bos = new ByteArrayOutputStream();
workbook.write(bos);
byte[] barray = bos.toByteArray();
InputStream is = new ByteArrayInputStream(barray);
MockMultipartFile file = new MockMultipartFile(fileName,fileName,is);
String pathName = file.getOriginalFilename();
5.文件上传到存储云中(比如:阿里云),获取链接地址,发送邮件