欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

POI快速入门教程 | HSSF,XSSF,SXSSF的区别

程序员文章站 2022-07-13 12:59:21
...

POI有三种API:

  • POI-HSSF
  • POI-XSSF
  • SXSSF

官方文档的说法:

HSSF是POI项目的Excel '97(-2007)文件格式的纯Java实现。XSSF是POI Project的Excel 2007 OOXML(.xlsx)文件格式的纯Java实现。

自3.8-beta3以来,POI提供了基于XSSF构建的低内存占用SXSSF API。

SXSSF是XSSF的API兼容流式扩展,用于在必须生成非常大的电子表格时使用,并且堆空间有限。SXSSF通过限制对滑动窗口内行的访问来实现其低内存占用,而XSSF允许访问文档中的所有行。不再在窗口中的旧行变得不可访问,因为它们被写入磁盘。

简单的说,HSSF对应旧的xls格式,XSSF对应新的xlsx格式,SXSSF是在XSSF的基础上,支持导出大批量的excel数据。

要使用POI,要知道以下关键代码:

	//创建工作簿,对应整个xlsx文件
	XSSFWorkbook workbook = new XSSFWorkbook();

	//创建sheet,对应excel的单个sheet
	XSSFSheet sheet = workbook.createSheet("sheet1");

	//创建行,对应excel中的一行
	XSSFRow row = sheet.createRow(0)

	//创建单元格,对应row中的一格
	XSSFCell cell = row.createCell(0);

	//单元格设置值
	cell.setCellValue("cell");

	//单元格设置样式
	cell.setCellStyle(style);

其中style要从workbook中创建,简单的style示例:

 	XSSFCellStyle style = workbook.createCellStyle();
 	//居中
 	style.setAlignment(HorizontalAlignment.CENTER);
    style.setVerticalAlignment(VerticalAlignment.CENTER);
    //border
    style.setBorderLeft(BorderStyle.THIN);
    style.setBorderTop(BorderStyle.THIN);
    style.setBorderRight(BorderStyle.THIN);
    style.setBorderBottom(BorderStyle.THIN);
    

将workbook保存到文件:

	FileOutputStream file = new FileOutputStream("example.xlsx");
    workbook.write(file);
    file.close();

现在就导出成功了。

POI的maven依赖:

	<dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.0</version>
    </dependency>

version自行更换就好。

一个已经封装好的工具:https://github.com/gaoice/easyexcel
方便快速导出excel。