如何使用POI解析Excel模板简单案例

private static  void ExceportExcelDemo() throws Exception {
        //1.首先是读取提前放置好的Excel模板(已存在)
        String tempPath="D:\\1\\TemplateExcel.xls";
        File tempFile = new File(tempPath);

        //2.创建一个存放导出的模板的路径(还未存在的)
        String newPath="D:\\1\\export\\exportdemo.xls";
        File newfile = new File(newPath);
        if(!newfile.exists()){
            newfile.mkdir();
        }

        //复制文件,复制一份模板到输出的路径上
        org.apache.commons.io.FileUtils.copyFile(tempFile,newfile);
        String fileType=newPath.substring(newPath.indexOf(".")+1);

        //读取复制过来的模板,给Excel插入数据
        InputStream fileInputStream = new FileInputStream(newfile);
        Workbook workbook = null;

        //根据Excel的后缀需要选取不同的Workbook
        if (fileType.toLowerCase().equals("xls")) {
            workbook = new HSSFWorkbook(fileInputStream);
        } else if (fileType.toLowerCase().equals("xlsx")) {
            workbook = WorkbookFactory.create(fileInputStream);
        }
        if(workbook!=null){

            //默认就读取第一个Sheet页了
            Sheet sheetAt = workbook.getSheetAt(0);
            //获取结束列
            int endCol=4;

            //起始行根据实际模板定义,这里假设需要输入10条数据
            for(int startRow=1;startRow<11;startRow++){
                //获取每一行
                Row row = sheetAt.createRow(startRow);
                //起始列从0开始
                for(int startCol=0;startCol<endCol;startCol++){
                    Cell cell = row.createCell(startCol);
                    cell.setCellValue("张三");
                }
            }
            //利用文件流再讲数据写回文件中取
            FileOutputStream fileOutputStream = new FileOutputStream(newfile);
            workbook.write(fileOutputStream);
            fileOutputStream.close();

        }
    }
public static void  main(String[] args){

        try {
            ExceportExcelDemo();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

提前准备好的模板
在这里插入图片描述
导出的模板
在这里插入图片描述
这里只做最简单的解析积累,具体需要根据实际业务解析复杂一点的Excel模板,但是基本代码都是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一名软件修理工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值