使用这个前需要引入依赖
```java
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</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>
1.十万以内数据导出
public void getUpload(HttpServletResponse response,
@RequestParam(defaultValue = "1") int pageNumber,
@RequestParam(defaultValue = "20") int pageSize,
)throws IOException {
Map param = Maps.newHashMap();
//获取要导出的数据
List<User> exports = UserMapper.getUserAll(param);
Map map = Maps.newHashMap();
map.put("list",exports);
//获取导出模板地址
ClassPathResource classPathResource = new ClassPathResource("static/importTemps/cbsj.xlsx");
String path = classPathResource.getPath();
/** 一开始下的这个 获取绝对路径会报错{cannot be resolved to absolute file path because it does not reside in the file system},所以改为上面的即可解决问题
String path = classPathResource.getFile().getPath();
**/
TemplateExportParams templateExportParams1 = new TemplateExportParams(path);
Workbook sheets = ExcelExportUtil.exportExcel(templateExportParams1,map);
String fileName = "导出数据.xlsx";
//取得输出流
OutputStream out = response.getOutputStream();
//清空输出流
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition",
"attachment;fileName=" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1"));
//写入文件
sheets.write(out);
sheets.close();
//关闭流
out.close();
}
模板样式为:
文件在项目中地址为:
2.大数据导出
public void bigExport(HttpServletResponse response) throws Exception {
List<User> list= UserMapper.getUserAll(param);
Workbook workbook = null;
ExportParams params = new ExportParams("大数据导出", "大数据导出");
if(list.size()>100000){
workbook = ExcelExportUtil.exportBigExcel(params, ResourcePoolExport.class, list);
}else{
workbook = ExcelExportUtil.exportExcel(params,
ResourcePoolExport.class, list);
}
//while (list.size()>0){
// List<ResourcePoolExport> list1 = list.subList(0,list.size() > 10000 ? 10000 : list.size());
// workbook = ExcelExportUtil.exportBigExcel(params, ResourcePoolExport.class, list1);
// list1.clear();
//}
ExcelExportUtil.closeExportBigExcel();
String fileName = "大数据导出.xlsx";
//取得输出流v
OutputStream out = response.getOutputStream();
//清空输出流
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition",
"attachment;fileName=" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1"));
//写入文件
workbook.write(out);
workbook.close();
//关闭流
out.close();
}