pom.xml引入坐标:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
使用HSSF对象打印excel文件示例:
public static void main(String[] args) throws IOException {
//1.创建一工作簿
Workbook wb = new HSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
//2.创建一sheet表
Sheet sheet1 = wb.createSheet("TestSheet");
//3.创建一单元格,设置内容为1
Row row = sheet1.createRow(0);//创建第一行
Cell cell = row.createCell(0);//在第一行上创建第一列
cell.setCellValue(1);
Cell cell2 = row.createCell(1);//在第二行上创建第二列
cell2.setCellValue(new Date()); //没有样式的话,日期会显示为41989.6210406597
//设置第二列内容的样式
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("m/d/yy h:mm"));//2014/12/16 14:57:17
cell2.setCellStyle(cellStyle);
//可以使用调用链,在一行中设置列
row.createCell(2).setCellValue(Calendar.getInstance());
//指定文件存放位置
FileOutputStream fileOut = new FileOutputStream("f:/workbook.xls");
wb.write(fileOut);
fileOut.close();
// Workbook wb = new XSSFWorkbook();
// FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
// wb.write(fileOut);
// fileOut.close();
}
另外,操作excel的还有更高级的XSSF与SXSSF对象,对比如下:
HSSF它操作excel 2003版本,它数据量有限,它支持到65536条。
XSSF它操作excel 2007版本,它不能读取excel2003版本,它支持1048576,单个sheet。
SXSSF它操作excel 2007版本,只用于大数据量的导出。它实现指定创建一定对象数量后,将这些不再使用的对象,写入临时文件。这样释放出这些对象所占用的内存,内存占用不高,才可以顺利完成海量数据的导出。
参考:http://poi.apache.org/