代码
@Resource
private ExcelUtils excelUtils;
@Async("doSomethingExecutor")
Future doCreateStockOutExcel(Date endTime, Date beginTime, Object storeNo) {
List<StockOutEo> stockOutEoList = stockOutMapper.findByStoreNo(storeNo.toString(), beginTime, endTime);
//生成记录在缺货报表列表
if (EmptyUtil.notEmpty(stockOutEoList)) {
//在内存中创建一个Excel文件
XSSFWorkbook workbook = new XSSFWorkbook();
sheetStockOut(workbook, stockOutEoList);
String excelName = DateUtil.dateStr6(beginTime) + ".xls";
String dir = storeNo.toString() + "/" + StockOutEo.EXCEL_DIR;
String downloadUrl = aliOssUtils.putExcel(workbook, dir, excelName);
createStockOutExcel(downloadUrl, storeNo.toString(), dir + "/" + excelName, 1);
} else {
createStockOutExcel(null, storeNo.toString(), null, 0);
}
return new AsyncResult(null);
}
private void sheetStockOut(XSSFWorkbook workbook, List<StockOutEo> stockOutEoList) {
XSSFSheet sheet = workbook.createSheet("缺货报表");
//创建行,0表示第一行
XSSFRow row = sheet.createRow(0);
//创建单元格,0表示第一个单元格
row.createCell(0).setCellValue("缺货报表");
XSSFRow row1 = sheet.createRow(1);
ExcelUtils.setTableForm(row1, ExcelUtils.stockOutLists);
excelUtils.setStockOutTableData(sheet, stockOutEoList);
}
创建EXCEL工具类
@Component
public class ExcelUtils {
@Resource
private P360RequestUtils p360RequestUtils;
@Resource
private OsLog osLog;
@Resource
private RtisUtil rtisUtil;
public static List<String> collectRowLists = Arrays.asList("移动收银", "自助收银", "扫码购", "实体销售(不含实体POS收银机)", "屈臣氏云店", "到店业务", "到家业务", "平台销售", "总计");
public static List<String> collectLists = Arrays.asList("业务类型", "销售额", "会员销售额占比", "销售笔数", "客单价",