生成Excel文件并上传到阿里云OSS

代码

		@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("业务类型", "销售额", "会员销售额占比", "销售笔数", "客单价",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值