使用註解匯出 (資料量大時使用)
參考官方文件
https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write
1.匯入依賴
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.2</version>
</dependency>
2.實體類
類上加這個註解,否則屬性不需要匯出的也給匯出來了
@ExcelIgnoreUnannotated
屬性加入 @ExcelProperty
註解
@ExcelProperty
private String unitNature;
3.編碼 web中匯出
private void download(List<TaxProblemCountDetailsResult> taxProblemCountNew, HttpServletResponse response) throws IOException {
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
// 這裡URLEncoder.encode可以防止中文亂碼 當然和easyexcel沒有關係
String fileName = URLEncoder.encode("納稅_具體問題統計", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
// 這裡 需要指定寫用哪個class去寫,然後寫到第一個sheet,名字為模板 然後檔案流會自動關閉
EasyExcel.write(response.getOutputStream(), TaxProblemCountDetailsResult.class).sheet("納稅_具體問題統計").doWrite(taxProblemCountNew);
}