POI簡介(官網:http://poi.apache.org/)
Apache POI是Apache軟件基金會的開放源碼函式庫,POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能。自2009-09-28后,推出了3.5版本,提供了對Office2007的支持;
關於Apache POI一些重要的地方:
1)Apache POI 包含適合Excel97-2007(.xls文件)的HSSF實現.
2)Apache POI XSSF實現用來處理Excel2007文件(.xlsx).
3)Apache POI HSSF和XSSF提供了讀/寫/修改Excel表格的機制.
4)Apache POI 提供了XSSF的一個擴展SXSSF用來處理非常大的Excel工作單元.SXSSF API需要更少的內存,因此當處理非常大的電子表格同時堆內存又有限時,很合適使用.
5)有兩種模式可供選擇--事件模式和用戶模式.事件模式要求更少的內存,因為用tokens來讀取Excel並處理.用戶模式更加面向對象並且容易使用,因此在我們的示例中使用用戶 模式.
6)Apache POI為額外的Excel特性提供了強大支持,例如處理公式,創建單元格樣式--顏色,邊框,字體,頭部,腳部,數據驗證,圖像,超鏈接等.
添加maven依賴:
1 <!-- 操作excel,doc... --> 2 <dependency> 3 <groupId>org.apache.poi</groupId> 4 <artifactId>poi</artifactId> 5 <version>3.10-FINAL</version> 6 </dependency> 7 <dependency> 8 <groupId>org.apache.poi</groupId> 9 <artifactId>poi-ooxml</artifactId> 10 <version>3.10-FINAL</version> 11 </dependency>
代碼如下:
1 package com.yanwu.www.spring_hibernate.util; 2 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 6 import org.apache.poi.hssf.usermodel.HSSFCell; 7 import org.apache.poi.hssf.usermodel.HSSFCellStyle; 8 import org.apache.poi.hssf.usermodel.HSSFRow; 9 import org.apache.poi.hssf.usermodel.HSSFSheet; 10 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 11 12 public class SimpleExcelWrite{ 13 14 public static void main(String[] args) { 15 16 //第一步創建workbook 17 HSSFWorkbook wb = new HSSFWorkbook(); 18 19 //第二步創建sheet 20 HSSFSheet sheet = wb.createSheet("測試"); 21 22 //第三步創建行row:添加表頭0行 23 HSSFRow row = sheet.createRow(0); 24 HSSFCellStyle style = wb.createCellStyle(); 25 //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //居中 26 27 28 //第四步創建單元格 29 HSSFCell cell = row.createCell(0); //第一個單元格 30 cell.setCellValue("姓名"); 31 cell.setCellStyle(style); 32 33 34 35 cell = row.createCell(1); //第二個單元格 36 cell.setCellValue("年齡"); 37 cell.setCellStyle(style); 38 39 40 //第五步插入數據 41 42 for (int i = 0; i < 5; i++) { 43 //創建行 44 row = sheet.createRow(i+1); 45 //創建單元格並且添加數據 46 row.createCell(0).setCellValue("aa"+i); 47 row.createCell(1).setCellValue(i); 48 49 } 50 51 //第六步將生成excel文件保存到指定路徑下 52 try { 53 FileOutputStream fout = new FileOutputStream("C:\\Users\\IBM_ADMIN\\Desktop\\promotion\\a.xls"); 54 wb.write(fout); 55 fout.close(); 56 } catch (IOException e) { 57 e.printStackTrace(); 58 } 59 60 System.out.println("Excel文件生成成功..."); 61 } 62 63 64 65 } 66 67 68 69
效果: