JAVA的POI操做Excel

1.1Excel簡介

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

1.2 POI工具包

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

POI全稱 Poor Obfuscation Implementation,直譯爲「可憐的模糊實現」,利用POI接口能夠經過JAVA操做Microsoft office 套件工具的讀寫功能。官網:http://poi.apache.org ,POI支持office的全部版本,因此選擇POI來說解。工具

1.3 POI Hello World

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

HSSFWorkbookspa

Excel 工做簿workbookexcel

HSSFSheetcode

Excel 工做表 sheet對象

HSSFRowblog

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

經過上門的例子咱們知道以下信息:

一、  Excel 的工做簿對應POI的HSSFWorkbook對象;

二、  Excel 的工做表對應POI的HSSFSheet對象;

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

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

 

 

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

一、 Excel 的工做簿對應POI的XSSFWorkbook對象;

二、 Excel 的工做表對應POI的XSSFSheet對象;

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

四、 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接口來讀入文件並統一處理。

相關文章
相關標籤/搜索