依赖:
<!--读取excel文件-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17-beta1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17-beta1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17-beta1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans -->
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</dependency>
<!-- 项目测试需要 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
主要代码类:
package com.example.demo.utils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
/**
* @Description:
* @Author 罗曼蒂克
* @Date Created in 19:46 2018/8/18
*/
public class GenerateExcel {
/**
* @param sheetName 表名
* @param header 表头数据
* @param body 主干数据 body.get(i) 对应 i+1行的所有数据
*/
public static void generateExcel(String sheetName, List<String> header, List<List<String>> body, OutputStream out) {
//新建excel报表
HSSFWorkbook excel = new HSSFWorkbook();
//添加一个sheet
HSSFSheet hssfSheet = excel.createSheet(sheetName);
//往excel表格创建一行,excel的行号是从0开始的
// 设置表头
HSSFRow firstRow = hssfSheet.createRow(0);
for (int columnNum = 0; columnNum < header.size(); columnNum ++) {
//创建单元格
HSSFCell hssfCell = firstRow.createCell(columnNum);
//设置单元格的值
hssfCell.setCellValue(header.size() < columnNum ? "-" : header.get(columnNum));
}
// 设置主体数据
/* for (int rowNum = 0; rowNum < body.size(); rowNum ++) {
//往excel表格创建一行,excel的行号是从0开始的
HSSFRow hssfRow = hssfSheet.createRow(rowNum + 1);
List<String> data = body.get(rowNum);
for (int columnNum = 0; columnNum < data.size(); columnNum ++) {
//创建单元格
HSSFCell hssfCell = hssfRow.createCell(columnNum);
//设置单元格的值
hssfCell.setCellValue(data.size() < columnNum ? "-" : data.get(columnNum));
}
}*/
try {
excel.write(out);
} catch (IOException e) {
e.printStackTrace();
}
}
}