引用jar
<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>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.3</version>
</dependency>
http://jakarta.apache.org/poi/ 这个是官方的文档
You'd use HSSF if you needed to read or write an Excel file using Java (XLS). You'd use XSSF if you need to read or write an OOXML Excel file using Java (XLSX). The combined SS interface allows you to easily read and write all kinds of Excel files (XLS and XLSX) using Java. Additionally there is a specialized SXSSF implementation which allows to write very large Excel (XLSX) files in a memory optimized way.
这句话详细介绍了上面两个jar包的用处。如果想让excel的后缀是 XLSX 就是用 ooxml的包,使用SXSSF类来写。否则使用另外的jar.
使用方法
try (HSSFWorkbook hssfWorkbook = new HSSFWorkbook()) {
HSSFSheet sheet = hssfWorkbook.createSheet(bizPushEnum.getBizName() + "每日对比差异订单");
HSSFRow titleRow = sheet.createRow(0);
titleRow.createCell(0).setCellValue("订单ID");
titleRow.createCell(1).setCellValue("门店ID");
titleRow.createCell(2).setCellValue("错误类型");
hssfWorkbook.write(byteArrayOutputStream);
} catch (IOException e) {
LOGGER.error("func=createExcel 生成excel报错 ", e);
}
其中记得关闭流
合并单元格
private void createTitleRow(HSSFSheet sheet) {
String title = StringUtil.format("{}每日对比差异订单。日期:{}。如有问题请联系siwenbin。", bizPushEnum.getBizName(), DateTime.now().toString("yyyyMMdd"));
sheet.createRow(0).createCell(0).setCellValue(title);
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 2));
}
要使用样式
http://www.bijishequ.com/detail/570413
https://www.cnblogs.com/zuge/p/5908861.html