配置檔案pom.xml引入
<dependency>
<groupId>io.github.magic-core</groupId>
<artifactId>excel-boot</artifactId>
<version>2.0</version>
</dependency>
最先定義的參數
/***
* 姓名
*/
@ExportField(columnName = "姓名")
private String name;
/***
* 電話
*/
@ExportField(columnName = "電話")
private String mobile;
controller中傳回值是void
@ApiOperation("導出")
@PostMapping(value = "/exportExcel", produces = "application/json")
public void exportExcel(@RequestParam String ids,HttpServletResponse httpServletResponse) {
registerService.exportExcel(ids,httpServletResponse);
}
//service直接按照官方自己改改就行了很順利
@Override
public void exportExcel(String ids,HttpServletResponse httpServletResponse){
try {
ExcelBoot.ExportBuilder(httpServletResponse, "Register", RegisterExcel.class).
exportResponse(null, new ExportFunction<RegisterExcel, RegisterExcel>() {
@Override
public List<RegisterExcel> pageQuery(RegisterExcel registerExcel, int pageNum, int pageSize) {
String[] split = ids.split(",");
ArrayList<Integer> list = new ArrayList<>();
for (String sp : split) {
int i = Integer.parseInt(sp);
list.add(i);
}
System.out.println("-----------"+list);
List<RegisterExcel> registerExcelList = registerMapper.findRegisterListByIds(list);
System.out.println("+++++++"+registerExcelList);
return registerExcelList;
}
@Override
public RegisterExcel convert(RegisterExcel registerExcel) {
return registerExcel;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
然後就完成了,全部很順利,但是導出的檔案一打開就是檔案損壞,然後開始debug開始找問題,找了一下午導入代碼、資料、參數的問題,然并卵
最後最後一不小心點想到是不是别的問題,然後找到了。。。
// Swagger 中的produces真是坑了半天
//最開始 produces = "application/json" 然後改成了下面的請求頭
@PostMapping(value = "/exportExcel", produces="application/octet-stream")
嗯,下載下傳完美打開。。。