1. 程式人生 > >POI入門及簡單應用

POI入門及簡單應用

        由於工作的需要,學習了一下POI,  Apache POI是Apache軟體基金會的開放原始碼函式庫,POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。

        那麼我們怎麼使用POI呢?POI的使用其實非常簡單,都不用我們安裝,我們只需要用它的幾個jar包就可以了。接下來我就一步一步圖文說一下如何使用POI。

第一步:下載壓縮包

        到官網http://poi.apache.org/download.html#archive下載POI的壓縮包,如下圖所示,poi-bin-3.15-20160924.zip是Windows系統所用到的包,poi-bin-3.15-20160924.tar.gz是Linux系統所需要的包。我們下載Windows系統下所需要的poi-bin-3.15-20160924.zip。

第二步:解壓並檢視都有哪些Jar包

2.1 我們解壓第一步下載的壓縮包,解壓後是名為poi-3.15的資料夾。

2.2 我們進入到poi-3.15資料夾下,我們可以看到有lib、ooxml-lib資料夾(這兩個資料夾裡面也是jar包)以及以poi開頭的一些jar包,我們需要所有的jar包。

第三步:工程中匯入jar包

3.1 我用的是Java EE,Java EE使用外部包的話,最好使用User Library的方式,因為直接建lib包並匯入jar包幷包含到專案中的話,jar包的排版特別難看。那麼怎麼新建一個User Library呢,我們點"Window"然後點"Preferences",如下圖所示。

      點選上圖的"Preferences"之後,會進入到如下圖所示的介面,我們在搜尋框中輸入"User Libraries"就會搜到在Java的Build Path下面有User Libraries,我們點選它,就會看到圖右側的內容(當然,剛開始是沒有poiJar和hadoopJar的,這是我建好的),我們點選"New...",然後輸入要新建的User Library的名字,我起的名字是poiJar。建好了Library之後就是向裡面新增jar包,我們點選"Add External JARs..."按鈕,在彈出的對話方塊中選擇我們在第二步中提到的lib、ooxml-lib資料夾下的所有jar包,以及與lib資料夾同級的所有以poi開頭的jar包,都新增到poiJar當中去。

3.2 弄好了poiJar之後,我們就讓工程引用一下該poiJar,方法是我們在工程上右鍵--------->點選"Build Path"-------->點選"Configure Build Path....",如下圖所示。

  點選上圖的“Configure Build Path...."之後,我們會看到如下圖所示的介面,剛開始只有JRE System Library,如下圖所示。我們要新增Library,點選"Add Library..."

    我們會看到如下圖所示,我們點選”User Library“。然後點選“Next”

接下來我們會看到如下圖所示的介面,我們勾選上poiJar,然後點選"Finish"

  接下來我們會看到如下圖所示的介面,我們可以看到poiJar下面有很多jar包了。我們點選"OK"。

 

   點選"OK"之後,我們再看看我們的工程下面就多了一個外部Library,poiJar下面是我們所要用到的所有POI的jar包。

第四步:使用POI

導好了jar包,接下來我們便用一個例子來測試一下POI是否可用,我新建了一個叫TestPOI的類,在該類中使用我們POI的功能,向D盤根目錄生成一個Excel檔案。

package com.test; import java.io.FileOutputStream; import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class TestPOI {
 @SuppressWarnings("resource")
 public static void main(String[] args) throws Exception {
    //建立工作簿---->XSSF代表10版的Excel(HSSF是03版的Excel)
    XSSFWorkbook wb = new XSSFWorkbook();
    //工作表
    XSSFSheet sheet = wb.createSheet("會員列表");
    //標頭行,代表第一行
    XSSFRow header=sheet.createRow(0);
    //建立單元格,0代表第一行第一列
    XSSFCell cell0=header.createCell(0);
    cell0.setCellValue("會員級別");
    header.createCell(1).setCellValue("會員編號");
    header.createCell(2).setCellValue("會員姓名");  
    header.createCell(3).setCellValue("推薦人編號");
    header.createCell(4).setCellValue("負責人編號");  
    header.createCell(5).setCellValue("地址編號");
    header.createCell(6).setCellValue("註冊時間");
    //設定列的寬度
    //getPhysicalNumberOfCells()代表這行有多少包含資料的列
    for(int i=0;i<header.getPhysicalNumberOfCells();i++){
     //POI設定列寬度時比較特殊,它的基本單位是1/255個字元大小,
     //因此我們要想讓列能夠盛的下20個字元的話,就需要用255*20
     sheet.setColumnWidth(i, 255*20);
    }
    //設定行高,行高的單位就是畫素,因此30就是30畫素的意思
    header.setHeightInPoints(30);
    //上面設定好了內容,我們當然是要輸出到某個檔案的,輸出就需要有輸出流
    FileOutputStream fos= new FileOutputStream("d:/2010.xlsx");
    //向指定檔案寫入內容
    wb.write(fos);
    fos.close();  
    }
}

執行上面的程式,我們再到D盤根目錄下看一下是否有我們要生成的2010.xlsx檔案,我們發現確實已經正常生成,如下圖所示。

我們開啟2010.xlsx檔案,看生成的內容是否正確,發現生成的內容包括行高都符合我們設定的值,完全沒問題!

好了,以上便是POI的簡單應用了。