aspose-cells 表合并

supply_apply_tpl.xlsx //主表文件

 


supply_apply_item_tpl.xlsx  //子表文件

结果:

 

代码:

 try {
        List<ExportModel> applies = new ArrayList<>();
        ExportModel apply = new ExportModel();
        applies.add(apply);

        apply.setDeliveryTime("2018-05-16 12:50:30");
        apply.setOrderNo("Y2017-04-062");
        apply.setHouseName("xx仓库");
        apply.setStatus("审核中");
        apply.setStoreName("xx门店");
        apply.setOrderCreateTime("2018-05-17 09:24:0");

        List<Dish> details = new ArrayList<>();
        apply.setDishs(details);

        Dish detail = new Dish();
        detail.setApplyNum(1f);
        detail.setCheckNum(2f);
        detail.setName("干贝");
        detail.setUnit("份");
        detail.setCategoryName("分类1");
        detail.setCode("56454");
        detail.setSpec("xxx");
        details.add(detail);

        detail = new Dish();
        detail.setApplyNum(1f);
        detail.setCheckNum(2f);
        detail.setName("海胆");
        detail.setUnit("支");
        detail.setCategoryName("海鲜");
        detail.setCode("565");
        detail.setSpec("xxx");
        details.add(detail);

        //-----------------------
        apply = new ExportModel();
        applies.add(apply);

        apply.setDeliveryTime("2018-6-16 12:50:30");
        apply.setOrderNo("Y2027-031-162");
        apply.setHouseName("ss仓库");
        apply.setStatus("通过");
        apply.setStoreName("ss门店");
        apply.setOrderCreateTime("2018-15-17 09:24:0");


        File supply_apply_tpl = new File("C:\\Users\\Canaan\\Desktop\\supply_apply_tpl.xlsx");
        File supply_apply_item_tpl = new File("C:\\Users\\Canaan\\Desktop\\supply_apply_item_tpl.xlsx");
        File outFile = new File("C:\\Users\\Canaan\\Desktop\\bbbb.xlsx");
        Workbook rootWorkbook;


            rootWorkbook = new Workbook(FileUtils.openInputStream(supply_apply_tpl));
            Worksheet rootWorksheet = rootWorkbook.getWorksheets().get(0);

            WorkbookDesigner rootDesigner = new WorkbookDesigner(rootWorkbook);
            rootDesigner.setDataSource("title", "配送入库单");
            int totalRowCount = 1;
            Workbook subWorkBookTpl = new Workbook(FileUtils.openInputStream(supply_apply_item_tpl));
            for (ExportModel exportModel : applies) {
                Workbook subBook = new Workbook();
                subBook.copy(subWorkBookTpl);

                WorkbookDesigner designer = new WorkbookDesigner(subBook);
                designer.setDataSource("orderNo", exportModel.getOrderNo());
                designer.setDataSource("orderCreateTime", exportModel.getOrderCreateTime());
                designer.setDataSource("deliveryTime", exportModel.getDeliveryTime());
                designer.setDataSource("status", exportModel.getStatus());
                designer.setDataSource("storeName", exportModel.getStoreName());
                designer.setDataSource("houseName", exportModel.getHouseName());
                designer.setDataSource("item",new CollectionCellsTable(exportModel.getDishs()));
                designer.process();

                Range subBookRange = subBook.getWorksheets().get(0).getCells().getMaxDisplayRange();

 rootWorksheet.getCells().insertRows(totalRowCount+1, subBookRange.getRowCount());     //为子模板预留行
                Range destRange = rootWorksheet.getCells().createRange(totalRowCount, subBookRange.getFirstColumn(),
                        subBookRange.getRowCount(), subBookRange.getColumnCount());

                destRange.copy(subBookRange);

                totalRowCount = subBookRange.getRowCount() + totalRowCount + 2;
            }

            rootDesigner.process();
            rootWorkbook.save(new FileOutputStream(outFile), SaveFormat.XLSX);

        } catch (Exception e) {
           e.printStackTrace();
        } finally {
            System.out.println("end");
        }

 

转载于:https://my.oschina.net/u/2552286/blog/1802260

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值