魔獸傳奇

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

          java替換Excel字符

          Posted on 2018-03-23 20:42 龍旋風 閱讀(583) 評論(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);  

                }


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


          網站導航:
           
          主站蜘蛛池模板: 青浦区| 华宁县| 永济市| 云林县| 抚松县| 大余县| 红安县| 钟祥市| 富民县| 惠来县| 上饶县| 延寿县| 凌源市| 雷波县| 晋中市| 汝城县| 利辛县| 措美县| 峨边| 长沙市| 甘泉县| 唐海县| 卓资县| 武陟县| 开封县| 五华县| 清新县| 奉节县| 英德市| 惠东县| 瑞金市| 云安县| 永新县| 济南市| 绩溪县| 武清区| 泸州市| 新民市| 彭水| 乐山市| 永定县|