aspose-cells table merge

supply_apply_tpl.xlsx //Main table file


supply_apply_item_tpl.xlsx //Sub table file

result:

 

Code:

 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();

                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");
        }

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325000726&siteId=291194637