• POI3.10读取Excel模板填充数据后生成新的Excel文件


    private final DecimalFormat df = new DecimalFormat("#0.00");
        
        public void test(){
            String filePath = "G:\tmp\qhjt_yd.xls";
            String destPath = "G:\tmp\qhjt_yd2.xls";
            
            List<Map<String,Double>> list = getData();
            Map<String,String> nsrxx = getBaseInfo();
            
            try {
                //读取excel模板
                HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));    
                
                //读取第一个工作簿  
                HSSFSheet sheet = workbook.getSheetAt(0);   
                 
                //设置保留公式
                sheet.setForceFormulaRecalculation(true);
                
                //定义行与列
                HSSFRow row;
                HSSFCell cell;
                
                //第3行,第2列
                row = sheet.getRow(2);
                cell = row.getCell(1);
                cell.setCellValue(nsrxx.get("nsrmc"));
                
                //第3行,第4列
                row = sheet.getRow(2);
                cell = row.getCell(3);
                cell.setCellValue(nsrxx.get("bsq"));
                
                //第13行,第3列
                row = sheet.getRow(12);
                cell = row.getCell(2);
                cell.setCellValue(nsrxx.get("ycsm"));
                
                //第14行,第2列
                row = sheet.getRow(13);
                cell = row.getCell(1);
                cell.setCellValue(nsrxx.get("tbr"));
                
                //第14行,第5列
                row = sheet.getRow(13);
                cell = row.getCell(4);
                cell.setCellValue(nsrxx.get("lxdh"));
                
                //从第6行开始读取到第12行
                for(int i=5;i<12;i++){
                    Map<String,Double> mm = list.get(i-5);
                    
                    //获取行
                    row = sheet.getRow(i);
                    
                    //依次设置3,4列
                    cell = row.getCell(2);
                    cell.setCellValue(df.format(mm.get("bq")));
                    cell = row.getCell(3);
                    cell.setCellValue(df.format(mm.get("tq")));
                }
                
                FileOutputStream out = new FileOutputStream(destPath);
                workbook.write(out);
                out.close();
            } catch (IOException ex) {
                Logger.getLogger(PoiUtil.class.getName()).log(Level.SEVERE, null, ex);
            } 
        }

  • 相关阅读:
    设计原则
    git 教程
    git新建分支及提交代码到分支
    DataTemplateSelector介绍
    Semaphore 类 的使用理解C#
    C#中Finalize方法的问题
    WPF原理剖析——路由事件
    WPF自学入门(四)WPF路由事件之自定义路由事件
    路由事件
    commandBinding 的命令
  • 原文地址:https://www.cnblogs.com/yshyee/p/7647888.html
Copyright © 2020-2023  润新知