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依赖:
<!-- 操作excel,doc... -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
代码如下:
package com.yanwu.www.spring_hibernate.util; import java.io.FileOutputStream;
import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class SimpleExcelWrite{ public static void main(String[] args) { //第一步创建workbook
HSSFWorkbook wb = new HSSFWorkbook(); //第二步创建sheet
HSSFSheet sheet = wb.createSheet("测试"); //第三步创建行row:添加表头0行
HSSFRow row = sheet.createRow(0);
HSSFCellStyle style = wb.createCellStyle();
//style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //居中 //第四步创建单元格
HSSFCell cell = row.createCell(0); //第一个单元格
cell.setCellValue("姓名");
cell.setCellStyle(style); cell = row.createCell(1); //第二个单元格
cell.setCellValue("年龄");
cell.setCellStyle(style); //第五步插入数据 for (int i = 0; i < 5; i++) {
//创建行
row = sheet.createRow(i+1);
//创建单元格并且添加数据
row.createCell(0).setCellValue("aa"+i);
row.createCell(1).setCellValue(i); } //第六步将生成excel文件保存到指定路径下
try {
FileOutputStream fout = new FileOutputStream("C:\\Users\\IBM_ADMIN\\Desktop\\promotion\\a.xls");
wb.write(fout);
fout.close();
} catch (IOException e) {
e.printStackTrace();
} System.out.println("Excel文件生成成功...");
} }
效果: