<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 0, comments - 77, trackbacks - 0, articles - 356
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Java操作EXCEL文件

    Posted on 2007-09-07 16:11 semovy 閱讀(338) 評論(0)  編輯  收藏 所屬分類: JAVA應用
    很久以來都想研究一下利用java操作Excel的方法,今天沒事,就稍微了解了一下,特總結一下。利用java操作Excel,有個開源的東東-jxl.jar,可以到http://sourceforge.net/project/showfiles.php?group_id=79926下載。 

    一.讀取Excel文件內容

    java 代碼
    /**讀取Excel文件的內容   
     * @param file  待讀取的文件   
     * @return   
     */   
    public static String readExcel(File file){    
        StringBuffer sb = new StringBuffer();    
            
        Workbook wb = null;    
        try {    
            //構造Workbook(工作薄)對象    
            wb=Workbook.getWorkbook(file);    
        } catch (BiffException e) {    
            e.printStackTrace();    
        } catch (IOException e) {    
            e.printStackTrace();    
        }    
            
        if(wb==null)    
            return null;    
            
        //獲得了Workbook對象之后,就可以通過它得到Sheet(工作表)對象了    
        Sheet[] sheet = wb.getSheets();    
            
        if(sheet!=null&&sheet.length>0){    
            //對每個工作表進行循環    
            for(int i=0;i 
                //得到當前工作表的行數    
                int rowNum = sheet[i].getRows();    
                for(int j=0;j 
                    //得到當前行的所有單元格    
                    Cell[] cells = sheet[i].getRow(j);    
                    if(cells!=null&&cells.length>0){    
                        //對每個單元格進行循環    
                        for(int k=0;k 
                            //讀取當前單元格的值    
                            String cellValue = cells[k].getContents();    
                            sb.append(cellValue+"\t");    
                        }    
                    }    
                    sb.append("\r\n");    
                }    
                sb.append("\r\n");    
            }    
        }    
        //最后關閉資源,釋放內存    
        wb.close();    
        return sb.toString();    
    }   

    二.寫入Excel文件

    這里有很多格式了,比如文本內容加粗,加上某些顏色等,可以參考jxl的api,同時還推薦一篇不錯的文章:http://www.ibm.com/developerworks/cn/java/l-javaExcel/?ca=j-t10

    java 代碼
    /**生成一個Excel文件   
         * @param fileName  要生成的Excel文件名   
         */   
        public static void writeExcel(String fileName){    
            WritableWorkbook wwb = null;    
            try {    
                //首先要使用Workbook類的工廠方法創建一個可寫入的工作薄(Workbook)對象    
                wwb = Workbook.createWorkbook(new File(fileName));    
            } catch (IOException e) {    
                e.printStackTrace();    
            }    
            if(wwb!=null){    
                //創建一個可寫入的工作表    
                //Workbook的createSheet方法有兩個參數,第一個是工作表的名稱,第二個是工作表在工作薄中的位置    
                WritableSheet ws = wwb.createSheet("sheet1", 0);    
                    
                //下面開始添加單元格    
                for(int i=0;i<10;i++){    
                    for(int j=0;j<5;j++){    
                        //這里需要注意的是,在Excel中,第一個參數表示列,第二個表示行    
                        Label labelC = new Label(j, i, "這是第"+(i+1)+"行,第"+(j+1)+"列");    
                        try {    
                            //將生成的單元格添加到工作表中    
                            ws.addCell(labelC);    
                        } catch (RowsExceededException e) {    
                            e.printStackTrace();    
                        } catch (WriteException e) {    
                            e.printStackTrace();    
                        }    
       
                    }    
                }    
       
                try {    
                    //從內存中寫入文件中    
                    wwb.write();    
                    //關閉資源,釋放內存    
                    wwb.close();    
                } catch (IOException e) {    
                    e.printStackTrace();    
                } catch (WriteException e) {    
                    e.printStackTrace();    
                }    
            }    
        }    

    三.在一個Excel文件中查找是否包含某一個關鍵字

    java 代碼
    /**搜索某一個文件中是否包含某個關鍵字   
         * @param file  待搜索的文件   
         * @param keyWord  要搜索的關鍵字   
         * @return   
         */   
        public static boolean searchKeyWord(File file,String keyWord){    
            boolean res = false;    
                
            Workbook wb = null;    
            try {    
                //構造Workbook(工作薄)對象    
                wb=Workbook.getWorkbook(file);    
            } catch (BiffException e) {    
                return res;    
            } catch (IOException e) {    
                return res;    
            }    
                
            if(wb==null)    
                return res;    
                
            //獲得了Workbook對象之后,就可以通過它得到Sheet(工作表)對象了    
            Sheet[] sheet = wb.getSheets();    
                
            boolean breakSheet = false;    
                
            if(sheet!=null&&sheet.length>0){    
                //對每個工作表進行循環    
                for(int i=0;i 
                    if(breakSheet)    
                        break;    
                        
                    //得到當前工作表的行數    
                    int rowNum = sheet[i].getRows();    
                        
                    boolean breakRow = false;    
                        
                    for(int j=0;j 
                        if(breakRow)    
                            break;    
                        //得到當前行的所有單元格    
                        Cell[] cells = sheet[i].getRow(j);    
                        if(cells!=null&&cells.length>0){    
                            boolean breakCell = false;    
                            //對每個單元格進行循環    
                            for(int k=0;k 
                                if(breakCell)    
                                    break;    
                                //讀取當前單元格的值    
                                String cellValue = cells[k].getContents();    
                                if(cellValue==null)    
                                    continue;    
                                if(cellValue.contains(keyWord)){    
                                    res = true;    
                                    breakCell = true;    
                                    breakRow = true;    
                                    breakSheet = true;    
                                }    
                            }    
                        }    
                    }    
                }    
            }    
            //最后關閉資源,釋放內存    
            wb.close();    
                
            return res;    
        }
    主站蜘蛛池模板: 国产日产亚洲系列| 国产va免费精品观看精品| 亚洲国产综合人成综合网站| 亚洲日韩AV一区二区三区中文| 日本在线高清免费爱做网站| 亚洲妇女水蜜桃av网网站| 最近中文字幕电影大全免费版| 亚洲伦理一区二区| 1000部无遮挡拍拍拍免费视频观看| 亚洲视频在线播放| 日韩欧毛片免费视频| 天堂亚洲国产中文在线| 午夜毛片不卡免费观看视频| 亚洲aⅴ无码专区在线观看春色| 成人免费a级毛片无码网站入口| 在线精品亚洲一区二区 | 中文字幕视频在线免费观看| 成人亚洲综合天堂| 国产高清对白在线观看免费91| 亚洲国产精品无码久久青草| 狠狠躁狠狠爱免费视频无码| 亚洲国产综合无码一区| 37pao成人国产永久免费视频 | 亚洲国产精品国自产拍AV| 久久久久久国产精品免费无码| 亚洲av永久无码精品天堂久久| 在线观看免费a∨网站| 九九九精品视频免费| 亚洲国产美国国产综合一区二区 | 暖暖免费高清日本一区二区三区 | 久久国产乱子精品免费女| 亚洲国产av一区二区三区丶| 国产精品另类激情久久久免费| 国产成人无码精品久久久久免费 | 狠狠亚洲婷婷综合色香五月排名| 性xxxxx大片免费视频| 亚洲av永久综合在线观看尤物| 亚洲男人第一无码aⅴ网站| 最近免费最新高清中文字幕韩国| 亚洲乱色熟女一区二区三区蜜臀| 亚洲视频在线精品|