<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;    
        }
    主站蜘蛛池模板: 亚洲AV无码精品蜜桃| 黄色a级片免费看| 国产在线98福利播放视频免费 | 亚洲黄色免费观看| 最新仑乱免费视频| 国产免费一区二区三区免费视频| 亚洲图片一区二区| 国产精品免费视频网站| 日本免费中文字幕| 亚洲精品国产摄像头| 亚洲免费观看视频| 在线jlzzjlzz免费播放| 日本免费A级毛一片| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲v高清理论电影| 亚洲?V乱码久久精品蜜桃 | 亚洲精品456播放| 亚洲一区在线免费观看| 亚洲精品黄色视频在线观看免费资源| 亚洲欧洲综合在线| 超清首页国产亚洲丝袜| 成人免费视频软件网站| 久久aa毛片免费播放嗯啊| 免费人人潮人人爽一区二区 | 色屁屁在线观看视频免费| 亚洲国产成人综合| 亚洲欧洲美洲无码精品VA| 麻豆国产入口在线观看免费| 久久ww精品w免费人成| 精品免费久久久久国产一区| 亚洲精品无码专区在线播放| 久久久国产精品亚洲一区| 亚洲亚洲人成综合网络| 国产成人涩涩涩视频在线观看免费| 亚洲精品免费在线观看| 久草免费福利在线| 边摸边吃奶边做爽免费视频网站 | 久久综合国产乱子伦精品免费 | 国产美女精品视频免费观看 | 亚洲精品熟女国产| 亚洲AV无码一区二区二三区软件|