JAVA的POI操作Excel


1.1Excel簡介

一個excel文件就是一個工作簿workbook,一個工作簿中可以創建多張工作表sheet,而一個工作表中包含多個單元格Cell,這些單元格都是由列(Column)行(Row)組成,列用大寫英文字母表示,從A開始到Z共26列,然后再從AA到AZ又26列,再從BA到BZ再26列以此類推。行則使用數字表示,例如;A3 表示第三行第一列,E5表示第五行第五列。

1.2 POI工具包

JAVA中操作Excel的有兩種比較主流的工具包: JXL 和 POI 。jxl 只能操作Excel 95, 97, 2000也即以.xls為后綴的excel。而poi可以操作Excel 95及以后的版本,即可操作后綴為 .xls 和 .xlsx兩種格式的excel。

POI全稱 Poor Obfuscation Implementation,直譯為“可憐的模糊實現”,利用POI接口可以通過JAVA操作Microsoft office 套件工具的讀寫功能。官網:http://poi.apache.org ,POI支持office的所有版本,所以選擇POI來講解。

1.3 POI Hello World

在POI包中有如下幾個主要對象和excel的幾個對象對應:

HSSFWorkbook

Excel 工作簿workbook

HSSFSheet

Excel 工作表 sheet

HSSFRow

Excel 行

HSSFCell

Excel 單元格

利用以上幾個對象,我們簡單創建一個Excel工作表,往里面的C1單元格寫入和讀出“Hello World”:

        //創建工作簿
        HSSFWorkbook workbook=new HSSFWorkbook();
        //新建工作表
        HSSFSheet sheet=workbook.createSheet("劉洋");
        //創建行,行號作為參數,第一行從0開始計算
        HSSFRow row=sheet.createRow(0);
        //創建單元格,row已經確定行號,列好作為參數,第一列從0開始計算
        HSSFCell cell=row.createCell(2);
        //設置單元格(第一行第三列)
        cell.setCellValue("hello word");
        
        FileOutputStream outputStream=new FileOutputStream("d:\\工作簿.xls");
        
        workbook.write(outputStream);
        
        outputStream.close();

再利用上述幾個對象將“Hello World”讀取出來:

        //讀取excel文件
        FileInputStream inputStream=new FileInputStream("d:\\工作簿.xls");
        //將輸入流轉換為workbook
        HSSFWorkbook workbook=new HSSFWorkbook(inputStream);
        //獲取工作表
        HSSFSheet sheet=workbook.getSheetAt(0);
        //獲取行
        HSSFRow row=sheet.getRow(0);
        //獲取單元格(第一行第三列)
        HSSFCell cell=row.getCell(2);
        
        System.out.println("單元格內容為:"+cell.getStringCellValue());

1.4  POI與Excel

通過上門的例子我們知道如下信息:

1、  Excel 的工作簿對應POI的HSSFWorkbook對象;

2、  Excel 的工作表對應POI的HSSFSheet對象;

3、  Excel 的行對應POI的HSSFRow對象;

4、  Excel 的單元格對應POI的HSSFCell對象。

 

 

POI 也能對07以后的excel版本進行讀寫,讀寫方法和讀寫03版是一樣的,只是對象名稱變了;原來各對象的開頭字母H變為X,操作方式不變。

1、 Excel 的工作簿對應POI的XSSFWorkbook對象;

2、 Excel 的工作表對應POI的XSSFSheet對象;

3、 Excel 的行對應POI的XSSFRow對象;

4、 Excel 的單元格對應POI的XSSFCell對象。

文件后綴為.xlsx

 

查看POI api文檔,我們可以查詢POI中所有這些對象的屬性和方法。

從api文檔中我們了解到:

HSSFWorkbook 和 XSSFWorkbook 都實現了Workbook接口;

HSSFSheet 和 XSSFSheet 實現了Sheet接口;

HSSFRow 和 XSSFRow 實現了Row接口;

HSSFCell 和 XSSFCell 實現了Cell接口;

因為這兩類處理對象共同實現了對應的同一接口,屆時將大大方便和簡化了同時處理不同格式的excel文件的編碼工作。如;在處理03和07版本的excel文件時利用統一的接口就可以做到分析兩個版本的excel數據。

POI同時讀入03和07版本的excel。

方法一:判斷文件的名稱后調用對應版本的讀入方法。

方法二:根據不同版本用Workbook接口來讀入文件並統一處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM