JAVA POI 应用系列(1)--生成Excel
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
效果: