一、导入jar
本项目使用Maven管理jar,这里添加POI相关的jar依赖
<!-- POI -->
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
二、封装代码(类名称POIUtil.java):
导出并下载excel的封装代码:
/**
* @param title
* 工作簿名称
* @param heads
* 表格第一行名称数组
* @param dates
* 要导入表格的数据
* @param url
* 临时存放excel文件的文件夹
* 导出excel
*/
private static void exportExcel(String title, String[] heads,
List<Map<String, String>> dates, String url) {
// 新建excel报表
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// 添加一个sheet名称
HSSFSheet hssfSheet = hssfWorkbook.createSheet(title);
//设置单元格样式
HSSFCellStyle style = hssfWorkbook.createCellStyle();
style.setAlignment(CellStyle.ALIGN_CENTER); //水平居中
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直居中
/*
* 设定合并单元格区域范围 firstRow 0-based lastRow 0-based firstCol 0-based lastCol
* 0-based
*/
CellRangeAddress cra = new CellRangeAddress(0, 0, 0, heads.length - 1);
// 在sheet里增加合并单元格
hssfSheet.addMergedRegion(cra);
HSSFRow row = hssfSheet.createRow(0);
HSSFCell cell_1 = row.createCell(0);
cell_1.setCellValue(title);
cell_1.setCellStyle(style); //设置样式
HSSFRow hssfRow = hssfSheet.createRow(1);
for (int i = 0; i < heads.length; i+