文章框架
一、Apache POI 概述
定義:Java API操作Microsoft Office格式文件
核心功能:
讀寫Excel(.xls, .xlsx)
操作Word、PowerPoint等文檔
優勢:開源免費、跨平臺、功能全面
二、環境準備
Maven依賴配置:
<!-- poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency>
?三、案例代碼
? ????????1.Excel寫入實戰(代碼解析)
public static void POITestWrite()throws Exception{//在內存中創建Excel文件XSSFWorkbook excel=new XSSFWorkbook();//在Excel文件創建一個sheet頁XSSFSheet sheet=excel.createSheet("sheet1");//在sheet對象頁中創建行 從0開始為第一行XSSFRow row1 = sheet.createRow(0);//在行上創建單元格,并寫入單元格內容 單元格也是從0開始 所以1是第二個單元格row1.createCell(1).setCellValue("姓名");row1.createCell(2).setCellValue("城市");//創建第二行XSSFRow row2 = sheet.createRow(1);row2.createCell(1).setCellValue("張三");row2.createCell(2).setCellValue("北京");//創建第三行XSSFRow row3 = sheet.createRow(2);row3.createCell(1).setCellValue("李四");row3.createCell(2).setCellValue("湖北");//創建輸出流FileOutputStream out = new FileOutputStream(new File("D:\\sheet1.xlsx"));//寫入數據excel.write(out);//關閉輸出流文件和excel文件excel.close();out.close();}
關鍵點說明:
createRow()
/createCell()
?創建行列單元格索引從0開始(A列=0, B列=1)
? ? ? ? 2.Excel讀取實戰(代碼解析)
public static void POITaskRead() throws Exception{FileInputStream in = new FileInputStream(new File("D:\\sheet1.xlsx"));//讀取磁盤上的excel文件XSSFWorkbook excel = new XSSFWorkbook(in);//讀取excel中第一個sheet頁XSSFSheet sheet = excel.getSheetAt(0);//獲取sheet中創建最后一行的行號int lastRowNum = sheet.getLastRowNum();//遍歷行for (int i=0;i<=lastRowNum;i++){//獲取對應行XSSFRow row = sheet.getRow(i);if(row!=null){//獲取單元格內容String cellValue1 = row.getCell(1).getStringCellValue();String cellValue2 = row.getCell(2).getStringCellValue();System.out.println(cellValue1+" "+cellValue2);}}//關閉輸入流in.close();//關閉excelexcel.close();}
關鍵點說明:
getLastRowNum()
?獲取最后一行索引單元格類型處理:
getStringCellValue()
/getNumericCellValue()
空值處理建議:添加
if (row != null)
判斷
三、應用場景
報表導出
數據批量導入
自動化測試數據生成
財務數據分析
四、總結
Apache POI是Java操作Excel的首選方案
提供從基礎讀寫到高級功能的完整API
注意資源管理和異常處理確保穩定性