魔獸傳奇

          java程序愛好者
          posts - 28, comments - 16, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          java替換Excel字符

          Posted on 2018-03-23 20:42 龍旋風 閱讀(592) 評論(0)  編輯  收藏
          1. //模板路徑

            String modelPath="D:\Excel.xls" 

            //sheet的名字

            String sheetName="sheet1";

            獲取Excel模板對象

             try {  

                        File file = new File(modelPath);  

                        if(!file.exists()){  

                            System.out.println("模板文件:"+modelPath+"不存在!");  

                        }  

                        fs = new POIFSFileSystem(new FileInputStream(file));  

                        wb = new HSSFWorkbook(fs);  

                        sheet = wb.getSheet(sheetName);  

                    } catch (FileNotFoundException e) {  

                        e.printStackTrace();  

                    } catch (IOException e) {  

                        e.printStackTrace();  

                    }

          2. //從heet中獲取行數

            int rowNum = sheet.getLastRowNum();

          3. //獲取行里面的總列數

            row = sheet.getRow(i); //i:第I行

            // 獲取行里面的總列數

            int columnNum = 0;

            if(row!=null){

            columnNum = row.getPhysicalNumberOfCells();

            }

          4. //獲取單元格的值 

            HSSFCell cell = sheet.getRow(i).getCell(j); //第i行,第j列

            String cellValue = cell.getStringCellValue();

          5. //替換數據   本人的數據存放在Map中

            for (Entry<String, Object> entry : param.entrySet()) {

                    String key = entry.getKey();

                    if(key.equals(cellValue)){

                            String value = entry.getValue().toString();

                            setCellStrValue(i, j, value);//設置第i行,第j列的值為Value

                    }

            }

          6. 完整代碼:

                /**

                 * 替換Excel模板中的數據

                 * @param sheetName Sheet名字

                 * @param modelPath 模板路徑

                 * @param param 需要替換的數據

                 * @return

                 * @author 劉澤中

                 * @Date: 2015年12月11日

                 */

                public HSSFWorkbook replaceExcel(String sheetName,String modelPath,Map<String, Object> param){

                //獲取所讀取excel模板的對象

                    try {  

                        File file = new File(modelPath);  

                        if(!file.exists()){  

                            System.out.println("模板文件:"+modelPath+"不存在!");  

                        }  

                        fs = new POIFSFileSystem(new FileInputStream(file));  

                        wb = new HSSFWorkbook(fs);  

                        sheet = wb.getSheet(sheetName);  

                    } catch (FileNotFoundException e) {  

                        e.printStackTrace();  

                    } catch (IOException e) {  

                        e.printStackTrace();  

                    } 

                replaceExcelDate(param);

                return wb;

                }

                /**

                 * 根據 Map中的數據替換Excel模板中指定數據

                 * @param param 

                 * @author 劉澤中

                 * @Date: 2015年12月11日

                 */

                public void replaceExcelDate(Map<String, Object> param){

            // 獲取行數

            int rowNum = sheet.getLastRowNum();

            for (int i = 0; i < rowNum; i++) {

            row = sheet.getRow(i);

            // 獲取行里面的總列數

            int columnNum = 0;

            if(row!=null){

            columnNum = row.getPhysicalNumberOfCells();

            }

            for (int j = 0; j < columnNum; j++) {

            HSSFCell cell = sheet.getRow(i).getCell(j);

            String cellValue = cell.getStringCellValue();

            for (Entry<String, Object> entry : param.entrySet()) {

            String key = entry.getKey();

            if(key.equals(cellValue)){

            String value = entry.getValue().toString();

            setCellStrValue(i, j, value);

            }

            }

            }

            }

                }

                /** 

                 * 設置字符串類型的數據 

                 * @param rowIndex--行值 從0開始

                 * @param cellnum--列值  從0開始

                 * @param value--字符串類型的數據 

                 * 

                 * @author 劉澤中

                 * @Date: 2015年12月11日

                 */  

                public void setCellStrValue(int rowIndex, int cellnum, String value) {  

                    HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);  

                    cell.setCellValue(value);  

                }


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 鹰潭市| 宁远县| 汉中市| 崇义县| 余干县| 泊头市| 灌南县| 商水县| 措美县| 邯郸市| 石景山区| 石狮市| 巢湖市| 平邑县| 城口县| 罗山县| 桑植县| 大石桥市| 南汇区| 南皮县| 宜宾市| 荆州市| 涿鹿县| 邵阳市| 敦化市| 子长县| 舞钢市| 凤山市| 宜阳县| 顺平县| 汶上县| 日土县| 大兴区| 邹城市| 湘潭县| 长寿区| 万宁市| 昭平县| 花垣县| 上蔡县| 远安县|