您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Apache POI的基本使用方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
POI
pache POI是用Java編寫的免費開源的跨平臺的Java API,Apache POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能,
使用最多的就是使用POI操作Excel文件。
它還能操作word等這些其他形式的文檔
jxl:專門操作Excel,專門用來操作Excel的
使用POI,需要導入maven坐標
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency>
POI結構:針對不同的文檔形式來操作的時候會提供相應的一些類
HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能
XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能
HWPF - 提供讀寫Microsoft Word DOC格式檔案的功能
HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能
HDGF - 提供讀Microsoft Visio格式檔案的功能
HPBF - 提供讀Microsoft Publisher格式檔案的功能
HSMF - 提供讀Microsoft Outlook格式檔案的功能
使用POI可以從一個已經存在的Excel文件中讀取數據
下面是第二步
package com.yy.test; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.Test; import java.io.File; import java.io.FileInputStream; /** * @author Marston * @date 2021/10/29 */ public class POITest { @Test public void test() throws Exception { //傳入一個輸入流,加載指定文件,創建一個Excel對象(工作簿) XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("E:\\testNomal\\poi.xlsx"))); //讀取Excel文件中的第一個Sheet標簽頁 XSSFSheet sheet = excel.getSheetAt(0); //一個sheet頁里面有很多行,遍歷這個sheet標簽頁,獲取每一行數據 for (Row row : sheet) { //遍歷行,獲得每個單元格對象 for (Cell cell : row) { //cell代表單元格對象 System.out.println(cell.getStringCellValue());//getStringCellValue第二列因為是數值,不能轉為String類型的所以報錯 //只要將Excel表格里面的第二列的內容改為string類型的就可以了 } } //關閉Excel文件 excel.close(); } }
運行結果:
因為是入門案例,我這里就要類型改變為下面的,將Excel文件里面的內容修改后:
通過上面的入門案例可以看到,POI操作Excel表格封裝了幾個核心對象:
XSSFWorkbook:工作簿
XSSFSheet:工作表
Row:行
Cell:單元格
上面案例是通過遍歷工作表獲得行,遍歷行獲得單元格,最終獲取單元格中的值。
還有一種方式就是獲取工作表最后一個行號,從而根據行號獲得行對象,通過行獲取最后一個單元格索引,從而根據單元格索引獲取每行的一個單元格對象,代碼如下:
package com.yy.test; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.Test; import java.io.File; import java.io.FileInputStream; /** * @author Marston * @date 2021/10/29 */ public class POITest { @Test public void test2() throws Exception { //傳入一個輸入流,加載指定文件,創建一個Excel對象(工作簿) XSSFWorkbook excel = new XSSFWorkbook(new FileInputStream(new File("E:\\testNomal\\poi.xlsx"))); //讀取Excel文件中的第一個Sheet標簽頁 XSSFSheet sheet = excel.getSheetAt(0); //獲取當前工作表最后一行的行號,行號從0開始 int lastRowNum = sheet.getLastRowNum(); System.out.println("lastRowNum:"+lastRowNum); for(int i=0;i<=lastRowNum;i++){ //根據行號獲取每一行 XSSFRow row = sheet.getRow(i); //獲取當前行最后一個單元格索引 short lastCellNum = row.getLastCellNum(); System.out.println("lastCellNum:"+lastCellNum); for(short j=0;j<lastCellNum;j++){ //根據單元格索引獲取單元格內容 String value = row.getCell(j).getStringCellValue(); System.out.println(value); } } //關閉Excel文件 excel.close(); } }
測試代碼:
//使用POI向Excel文件寫入數據,并且通過輸出流將創建的Excel文件保存到本地磁盤 //@Test public void test3() throws Exception{ //在內存中創建一個Excel文件(工作簿) XSSFWorkbook excel = new XSSFWorkbook(); //創建一個工作表對象,名字叫做:POI寫入測試 XSSFSheet sheet = excel.createSheet("POI寫入測試"); //在工作表中創建行對象,在第一行創建 XSSFRow title = sheet.createRow(0); //在行中創建單元格對象 title.createCell(0).setCellValue("姓名");//第一列內容 title.createCell(1).setCellValue("地址"); title.createCell(2).setCellValue("年齡"); //在第二行創建 XSSFRow dataRow = sheet.createRow(1); dataRow.createCell(0).setCellValue("小明"); dataRow.createCell(1).setCellValue("北京"); dataRow.createCell(2).setCellValue("20"); //創建一個輸出流,通過輸出流將內存中的Excel文件寫到磁盤 FileOutputStream out = new FileOutputStream(new File("e:\\hello.xlsx")); excel.write(out);//寫入 out.flush();//刷新 excel.close(); }
看完上述內容,你們對Apache POI的基本使用方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。