POI使用

            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.14</version>
            </dependency>
/**
     * 工作单批量导入
     * @return
     */
    private File upload;
    public void setUpload(File upload) {
        this.upload = upload;
    }
    public String batchImport() throws IOException{
        //使用POI读取xml文件
        String flag="success";
        try {
            HSSFWorkbook wb=new HSSFWorkbook(new FileInputStream(upload));
            //读取sheet
            HSSFSheet sheet = wb.getSheetAt(0);
            List<Workordermanage>list=new ArrayList<Workordermanage>();//keep
            //读取行,有多行,需要循环
            int i=0;
            for(Row row:sheet){
                if(i==0){
                    i++;
                    continue;
                }
                for(i=0;i<18;i++){
                    if(row.getCell(i)!=null){
                        row.getCell(i).setCellType(Cell.CELL_TYPE_STRING);
                    }
                }
                //读取每列数据
                String id = row.getCell(0).getStringCellValue();
                String arrivecity = row.getCell(1).getStringCellValue();
                String product = row.getCell(2).getStringCellValue();
                Integer num = Integer.parseInt(row.getCell(3).getStringCellValue());
                Double weight = Double.parseDouble(row.getCell(4).getStringCellValue());
                String floadreqr = row.getCell(5).getStringCellValue();
                String prodtimelimit = row.getCell(6).getStringCellValue();
                String prodtype = row.getCell(7).getStringCellValue();
                String sendername = row.getCell(8).getStringCellValue();
                String senderphone = row.getCell(9).getStringCellValue();
                String senderaddr = row.getCell(10).getStringCellValue();
                String receivername = row.getCell(11).getStringCellValue();
                String receiverphone = row.getCell(12).getStringCellValue();
                String receiveraddr = row.getCell(13).getStringCellValue();
                Integer feeitemnum = Integer.parseInt(row.getCell(14).getStringCellValue());
                Double actlweit = Double.parseDouble(row.getCell(15).getStringCellValue());
                String vol = row.getCell(16).getStringCellValue();
                String managerCheck = row.getCell(17).getStringCellValue();
                Date updatetime = row.getCell(18).getDateCellValue();
                Workordermanage workordermanage=new Workordermanage(id, arrivecity, product, num, weight, 
                        floadreqr, prodtimelimit, prodtype, sendername, senderphone, senderaddr, receivername, 
                        receiverphone, receiveraddr, feeitemnum, actlweit, vol, managerCheck, updatetime);
                list.add(workordermanage);
                workordermanageService.save(list);
            }
        }catch(Exception e){
            flag="导入失败";
            e.printStackTrace();
        }
        ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
        ServletActionContext.getResponse().getWriter().print(flag);
        return NONE;
    }
    /**
     * 导入工作单
     */
    @Override
    public void save(List<Workordermanage> list) {
        for(Workordermanage workordermanage:list){
            workordermanageDao.saveOrUpdate(workordermanage);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
POI(Apache POI)是一个用于读写 Microsoft Office 格式文件的 Java 库。使用 POI 可以方便地读取、创建和修改 Word、Excel 和 PowerPoint 文档。 使用 POI 创建 Word 文档时,可以使用 Word 模板来实现快速生成具有相同格式和布局的文档。 以下是使用 POI 使用 Word 模板创建 Word 文档的步骤: 1. 创建一个空的 Word 文档对象 ``` XWPFDocument doc = new XWPFDocument(); ``` 2. 打开 Word 模板文件 ``` FileInputStream inputStream = new FileInputStream("template.docx"); XWPFDocument templateDoc = new XWPFDocument(inputStream); ``` 3. 遍历模板的段落,并复制到新的 Word 文档对象 ``` for (XWPFParagraph templateParagraph : templateDoc.getParagraphs()) { XWPFParagraph newParagraph = doc.createParagraph(); newParagraph.getCTP().setPPr(templateParagraph.getCTP().getPPr()); for (XWPFRun templateRun : templateParagraph.getRuns()) { XWPFRun newRun = newParagraph.createRun(); newRun.getCTR().setRPr(templateRun.getCTR().getRPr()); newRun.setText(templateRun.getText(0)); } } ``` 4. 遍历模板的表格,并复制到新的 Word 文档对象 ``` for (XWPFTable templateTable : templateDoc.getTables()) { XWPFTable newTable = doc.createTable(); newTable.getCTTbl().setTblPr(templateTable.getCTTbl().getTblPr()); for (int i = 0; i < templateTable.getRows().size(); i++) { XWPFTableRow templateRow = templateTable.getRow(i); XWPFTableRow newRow = newTable.createRow(); newRow.getCTRow().setTrPr(templateRow.getCTRow().getTrPr()); for (int j = 0; j < templateRow.getTableCells().size(); j++) { XWPFTableCell templateCell = templateRow.getCell(j); XWPFTableCell newCell = newRow.getCell(j); newCell.getCTTc().setTcPr(templateCell.getCTTc().getTcPr()); newCell.setText(templateCell.getText()); } } } ``` 5. 关闭 Word 模板文件 ``` templateDoc.close(); ``` 6. 保存新的 Word 文档对象到文件 ``` FileOutputStream outputStream = new FileOutputStream("output.docx"); doc.write(outputStream); outputStream.close(); ``` 注意:以上代码的 `template.docx` 是 Word 模板文件的路径,`output.docx` 是生成的新 Word 文档文件的路径。在复制段落和表格时,需要注意复制段落和表格的格式和样式,以确保生成的新文档与模板文档的格式和样式一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值