一.讀取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) { } 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檔案
/**生成一個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) { try { //從記憶體中寫入檔案中 wwb.write(); //關閉資源,釋放記憶體 wwb.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { }
三.在一個Excel檔案中查找是否包含某一個關鍵字
/**搜尋某一個檔案中是否包含某個關鍵字 * @param file 待搜尋的檔案 * @param keyWord 要搜尋的關鍵字 * @return public static boolean searchKeyWord(File file,String keyWord){ boolean res = false; Workbook wb = null; //構造Workbook(工作薄)對象 wb=Workbook.getWorkbook(file); } catch (BiffException e) { return res; if(wb==null) //獲得了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; }
四.往Excel中插入圖檔圖示
插入圖檔的實作很容易,參看以下代碼: /**往Excel中插入圖檔 * @param dataSheet 待插入的工作表 * @param col 圖檔從該列開始 * @param row 圖檔從該行開始 * @param width 圖檔所占的列數 * @param height 圖檔所占的行數 * @param imgFile 要插入的圖檔檔案 public static void insertImg(WritableSheet dataSheet, int col, int row, int width, int height, File imgFile){ WritableImage img = new WritableImage(col, row, width, height, imgFile); dataSheet.addImage(img); } 以上代碼的注釋已經很清楚了,大概也就不用再解釋了,我們可以用如下程式驗證: //建立一個工作薄 WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls")); //待插入的工作表 WritableSheet imgSheet = workbook.createSheet("Images",0); //要插入的圖檔檔案 File imgFile = new File("D:/1.png"); //圖檔插入到第二行第一個單元格,長寬各占六個單元格 insertImg(imgSheet,0,1,6,6,imgFile); workbook.write(); workbook.close(); catch (IOException e) { e.printStackTrace(); catch (WriteException e) { 但是jxl隻支援png格式的圖檔,jpg格式和gif格式都不支援
五.插入頁眉頁腳
一般的頁眉頁腳都分為三個部分,左,中,右三部分,利用如下代碼可實作插入頁眉頁腳 /**向Excel中加入頁眉頁腳 * @param dataSheet 待加入頁眉的工作表 * @param left * @param center * @param right public static void setHeader(WritableSheet dataSheet,String left,String center,String right){ HeaderFooter hf = new HeaderFooter(); hf.getLeft().append(left); hf.getCentre().append(center); hf.getRight().append(right); //加入頁眉 dataSheet.getSettings().setHeader(hf); //加入頁腳 //dataSheet.getSettings().setFooter(hf); 我們可以用如下代碼測試該方法: WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls")); //待插入的工作表 WritableSheet dataSheet = workbook.createSheet("加入頁眉",0); ExcelUtils.setHeader(dataSheet, "chb", "2007-03-06", "第1頁,共3頁"); workbook.write(); workbook.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { } }
描述: 源代碼
下載下傳次數: 4414