標籤:
首先談一下今天發生的一件開心的事,本著一顆android的心我被分配到了PB組,身在曹營心在漢啊!好吧,今天要記錄和分享的是Java利用POI匯入匯出Excel中的資料。下面POI包的http://poi.apache.org/download.html,有興趣的朋友也可以去看看其中的API。
下面分享一下在對POI進行基本操作時覺得需要注意的兩點:
1.POI中針對xlsx/xls是需要create different Workbook instance HSSFWorkbook是針對xls XSSFWorkbook是針對xlsx的。
1: String fileaddress="E:/部落格統計.xlsx"; //讀取Excel地址
2: XSSFWorkbook wb=null;
3: File f = new File(fileaddress);// 讀取excel檔案
4: FileInputStream is = new FileInputStream(f);// 建立檔案流
5: if(fileaddress.toLowerCase().endsWith("xlsx")){
6: wb = new XSSFWorkbook(is); //如果xlsx版本的就建立XSSFWorkbook對象
7: } else if(fileName.toLowerCase().endsWith("xls")){
8: wb = new HSSFWorkbook(is); //如果xls版本的就建立HSSFWorkbook對象
9: }
2.在向Excel中匯入資料時需要明白sheet中是否有row這個對象,如果有的話就getRow(),gerCell(),setCellValue(),沒有的話就需要createRow(),createCell(),setCellValue().
1: XSSFSheet sheet = wb.getSheetAt(1); // 第一個工作表
2: int lastrow = sheet.getLastRowNum() + 1;
3: if(rowindex_<lastrow){
4: XSSFRow row = sheet.getRow(rowindex_);// 獲得行對象
5: row.getCell(0).setCellValue(bolgname2);
6: row.getCell(1).setCellValue(linktime2);
7: row.getCell(2).setCellValue(linktitle2);
8: row.getCell(3).setCellValue(linkresult2);
9: row.getCell(4).setCellValue(linkred2);
10: row.getCell(5).setCellValue(linkpinglun2);
11: row.getCell(6).setCellValue(tuijianString2);
12: row.getCell(7).setCellValue(fanduiString2);
13: }
14: else{
15: XSSFRow row = sheet.createRow(rowindex_);
16: row.createCell(0).setCellValue(bolgname2);
17: row.createCell(1).setCellValue(linktime2);
18: row.createCell(2).setCellValue(linktitle2);
19: row.createCell(3).setCellValue(linkresult2);
20: row.createCell(4).setCellValue(linkred2);
21: row.createCell(5).setCellValue(linkpinglun2);
22: row.createCell(6).setCellValue(tuijianString2);
23: row.createCell(7).setCellValue(fanduiString2);
24: }
3.關閉流
1: FileOutputStream fileOut = new FileOutputStream(fileaddress);
2: wb.write(fileOut);
3: is.close();
4: fileOut.close();
最後今天對部落格統計修複了一個bug,發現Regex在控制字元串格式時很給力但是水很深需要好好學習,就把他當成下一個學習目標,然後下一次解決問題時,腦子裡迸出來的就是他。
Java利用POI匯入匯出Excel中的資料