添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
我的代码是读取填充具体可以看官方文档写的很清楚 传送阵
源文件是这样子的
/**
* 工信部报送模板xls 导出使用
* @return
*/
@Override
public Integer FtDocResult() {
// 模板注意 用{name} 来表示你要用的变量 用{.name} 表示传的是集合
//这个地址就是读取文件的格式,按照这个格式去填充数据,这个文件不会改变
String templateFileName ="E:\\YuanDongJu\\haining-guarantee\\fante-business\\src\\main\\java\\com\\ruoyi\\test\\工信部报送模板.xls";
// 这个就是按照上面的文件格式,填充好数据的文件
String fileName = file.getPath()+"\\工信部报送模板-" + System.currentTimeMillis() + ".xls";
FileSystemView fsv = FileSystemView.getFileSystemView();
//获取电脑桌面路径
File file =fsv.getHomeDirectory();
//获取数据 financingStatus 用信状态 2 成功 financingPerfect 是否完善 1 是已经完善,所需的资料都存在
//这个就是一个list实体类,实体类的字段要和xls表中{name}中的数据对应
List<FtDocResult> ftDocResultslist = docEasyMapper.FtDocResult(ActivitiEnum.AUDIT_STATUS.PASS.getStatus(), BizConstants.StrNum.ONE);
//储存数据
List<DocEasy> easyList = new ArrayList<>();
DocEasy easy = new DocEasy();
//遍历修改
ftDocResultslist.forEach((data)->{
//转万元
data.getFtDoc().setSalesRevenue(Arith.yuanToWan(data.getFtDoc().getSalesRevenue()));
data.getFtDoc().setTotalAssets(Arith.yuanToWan(data.getFtDoc().getTotalAssets()));
data.getFtDoc().setGuaranteeAmount(Arith.yuanToWan(data.getFtDoc().getGuaranteeAmount()));
//对象数据复制
BeanUtils.copyProperties(data.getFtDoc(),easy);
//放款银行名称是 融资用信中的:担保银行字段
easy.setBankName(data.getFtFinancing().getGuaranteeBank());
//添加
easyList.add(easy);
});
// EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(easyList);
//这里 会填充到第一个sheet, 然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
excelWriter.fill(easyList, writeSheet);
excelWriter.fill(easyList, writeSheet);
// 关闭流
excelWriter.finish();
return 1;
}
效果图
还有更多强大的用法还是去官网看吧,写的还是蛮清楚的
传送阵