EasyExcel匯出小結:動態標題、標題格式、相同值合併
阿新 • • 發佈:2021-02-01
## 1. 實列相關依賴
```java
```
## 2.EasyExcel匯出常見的兩種方式:
**1.根據路徑儲存到磁碟:**
**2.響應Response,使用者直接網頁下載:**
正常分為三個步驟:
(1)構建一個`ExcelWriter`物件。
(2)再次通過`write`方法寫入資料。
(3)呼叫EasyExcel的`finish`。
**根據路徑儲存示例:**
```java
private ExcelWriter excelWriter;
public EasyExcelHelper(String path) {
excelWriter = EasyExcel.write(path).build();
//固定的excel標題:
//Class類的屬性必須使用`ExcelProperty`註解修飾。
//EasyExcel.write(path, Class).build()
}
//儲存到本地磁碟
excelWriter.finish();
```
**響應Respones示例:**
```java
private ExcelWriter excelWriter;
public EasyExcelHelper() {
excelWriter = new ExcelWriterBuilder()
.excelType(ExcelTypeEnum.XLSX)
.needHead(true)
.build();
}
public void export(HttpServletResponse response,String fileName ) {
final String exportName = fileName + ExcelTypeEnum.XLSX.getValue();
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
try {
excelWriter.finish();
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(exportName, StandardCharsets.UTF_8.name()));
response.setHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(dataBytes.length));
} catch (IOException e) {
log.error(e.getMessage(), e);
throw new ApiException(ErrorEnum.DOWNLOAD_ERROR);
}
}
```
## 3.EaxyExcel動態標題
``` java
/**
* @param sheetStartNum 預設為0即可
* @param sheetName sheet名稱
* @param headList 動態標題,格