-
介紹
Apache POI 是一個處理Miscrosoft Office各種檔案格式的開源專案。簡單來說就是,我們可以使用 POI 在 Java 程式中對Miscrosoft Office各種檔案進行讀寫操作。一般情況下,POI 都是用於操作 Excel 檔案。
-
Apache POI 的應用場景:
● 銀行網銀系統匯出交易明細
● 各種業務系統匯出Excel報表
● 批次匯入業務資料 -
使用
- Apache POI的maven座標:
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
- 讀、寫
/**
* 使用POI操作Excel檔案
*/
public class POITest {
/**
* 透過POI建立Excel檔案並且寫入檔案內容
*/
public static void write() throws Exception{
//在記憶體中建立一個Excel檔案
XSSFWorkbook excel = new XSSFWorkbook();
//在Excel檔案中建立一個Sheet頁
XSSFSheet sheet = excel.createSheet("info");
//在Sheet中建立行物件,rownum編號從0開始
XSSFRow row = sheet.createRow(1);
//建立單元格並且寫入檔案內容
row.createCell(1).setCellValue("姓名");
row.createCell(2).setCellValue("城市");
//建立一個新行
row = sheet.createRow(2);
row.createCell(1).setCellValue("張三");
row.createCell(2).setCellValue("北京");
row = sheet.createRow(3);
row.createCell(1).setCellValue("李四");
row.createCell(2).setCellValue("南京");
//透過輸出流將記憶體中的Excel檔案寫入到磁碟
FileOutputStream out = new FileOutputStream(new File("D:\\info.xlsx"));
excel.write(out);
//關閉資源
out.close();
excel.close();
}
/**
* 透過POI讀取Excel檔案中的內容
* @throws Exception
*/
public static void read() throws Exception{
InputStream in = new FileInputStream(new File("D:\\info.xlsx"));
//讀取磁碟上已經存在的Excel檔案
XSSFWorkbook excel = new XSSFWorkbook(in);
//讀取Excel檔案中的第一個Sheet頁
XSSFSheet sheet = excel.getSheetAt(0);
//獲取Sheet中最後一行的行號
int lastRowNum = sheet.getLastRowNum();
for (int i = 1; i <= lastRowNum ; i++) {
//獲得某一行
XSSFRow row = sheet.getRow(i);
//獲得單元格物件
String cellValue1 = row.getCell(1).getStringCellValue();
String cellValue2 = row.getCell(2).getStringCellValue();
System.out.println(cellValue1 + " " + cellValue2);
}
//關閉資源
in.close();
excel.close();
}
public static void main(String[] args) throws Exception {
//write();
read();
}
}