生产就项目用到jxls加poi导出excel文件
//模拟数据
List data = new ArrayList<>();
Map<String,Object> excelMap = new HashMap<>();excelMap.put("ro", data );
//项目用到的导出代码
String fileName = SystemConst.WEB_ROOT_PATH + File.separator +"store/export/"+URLEncoder.encode("订单排单_"+time, "UTF-8")+".xls";
File outFile = new File(fileName);
XLSTransformer transformer = new XLSTransformer();
//旧项目导出会用到模板excel(很垃圾的处理)
InputStream is = new BufferedInputStream(new FileInputStream(new File(SystemConst.WEB_ROOT_PATH+"/template/exportUserOrder.xls")));
HSSFWorkbook workBook = new HSSFWorkbook(is);
transformer.transformWorkbook(workBook, excelMap);
OutputStream os = new FileOutputStream(outFile);
workBook.write(os);
os.flush();
配置的excel如图用${}占位符,

然后去执行导出,诡异的时导出竟然没有将省份导出,很难受

经过debuge排查,终于找到了问题所在

原因就是它会将${ro.province}中进行替换,将ro后面加上_JxLSC,因为province中也有ro所以替换了province被替换成了pro_JxLSC_vince,所以只要将前缀ro改成和province不一样的单词就行
List data = new ArrayList<>();
//在这里将ro改成rv
Map<String,Object> excelMap = new HashMap<>();excelMap.put("rv", data );
//项目用到的导出代码
String fileName = SystemConst.WEB_ROOT_PATH + File.separator +"store/export/"+URLEncoder.encode("订单排单_"+time, "UTF-8")+".xls";
File outFile = new File(fileName);
XLSTransformer transformer = new XLSTransformer();
//旧项目导出会用到模板excel(很垃圾的处理)
InputStream is = new BufferedInputStream(new FileInputStream(new File(SystemConst.WEB_ROOT_PATH+"/template/exportUserOrder.xls")));
HSSFWorkbook workBook = new HSSFWorkbook(is);
transformer.transformWorkbook(workBook, excelMap);
OutputStream os = new FileOutputStream(outFile);
workBook.write(os);
os.flush();
最终导出结果正确展示













