我把這個賊好用的Excel匯出工具開源了!!
阿新 • • 發佈:2020-10-07
## 寫在前面
> 不管是傳統軟體企業還是網際網路企業,不管是管理軟體還是面向C端的網際網路應用。都不可避免的會涉及到報表操作,而對於報表業務來說,一個很重要的功能就是將資料匯出到Excel。如果我們在業務程式碼中,嵌入很多匯出Excel的邏輯,那我們的程式碼就會變得異常臃腫,不利於維護,而且匯出Excel的核心邏輯基本相同。那我們能否將匯出Excel的核心邏輯封裝成一個工具,當我們需要匯出Excel時,只是向工具簡單的傳入資料呢?於是乎,mykit-excel誕生了!
>
> mykit-excel的github連結地址為:[https://github.com/sunshinelyz/mykit-excel](https://github.com/sunshinelyz/mykit-excel) 歡迎各位小夥伴Star和Fork原始碼,也歡迎大家pr你牛逼哄哄的程式碼,我們一起來養肥它!
## 框架簡述
mykit-excel外掛是通用的Excel匯入匯出框架,旨在提供通用的Excel匯入匯出功能,支援以註解方式選擇JavaBean中的部分欄位匯出,並提供註解指定Excel列標題和排序功能。
## 框架結構
- mykit-excel-annotation: mykit-excel框架的註解模組,提供註解標識類中的哪些欄位需要匯出到Excel
- mykit-excel-common: mykit-excel框架的通用工具類,提供通用的工具模板
- mykit-excel-servlet: mykit-excel框架提供的Web模組,能夠支援Web請求匯出Excel
- mykit-excel-springmvc: mykit-excel框架提供的SpringMVC模組,能夠支援Web請求匯出Excel
- mykit-excel-test: mykit-excel框架提供的常規測試模組
- mykit-excel-springboot: mykit-excel框架提供的SpringBoot測試模組
## 測試用例
(1)測試常規匯出Excel工具類的Java類為:`io.mykit.excel.springboot.normal.export.TestExportExcelUtils`,直接執行該類即可。
(2)測試註解匯出Excel工具類的Java類為:`io.mykit.excel.springboot.annotation.export.TestAnnotationExportExcelUtils`,直接執行該類即可。
(3)測試SpringMVC匯出Excel的Java類為`io.mykit.excel.springboot.normal.springmvc.NormalExportExcelContorller`,執行SpringBoot的啟動類`io.mykit.excel.springboot.MykitExcelCoreApplication`之後,使用`resources/html`目錄下的normalExportExcel.html檔案匯出Excel即可。如果設定的IP和埠與mykit-excel-springboot模組不同,則修改normalExportExcel.html檔案中的IP和埠即可。
(4)測試基於註解匯出Java類為`io.mykit.excel.springboot.annotation.springmvc.AnnotationExportExcelController`,執行SpringBoot的啟動類`io.mykit.excel.springboot.MykitExcelCoreApplication` 之後,使用`resources/html`目錄下的annotationExportExcel.html檔案匯出Excel即可。如果設定的IP和埠與mykit-excel-springboot模組不同,則修改annotationExportExcel.html檔案中的IP和埠即可。
## 註解說明
如果使用註解方式匯出Excel,則需要在JavaBean的屬性欄位上新增@ExcelColumn註解,此註解中有三個屬性,分別如下:
- isExport:表示是否將當前欄位匯出到Excel,true:是;false:否
- title:匯出到Excel時的當前列的標題;
- sort:當前欄位匯出到Excel的列時,在Excel中的位置,值越小,當前列越靠前。
## 使用方式
### 普通方式匯出Excel
如果是普通的Java專案,只是將Excel檔案匯出到本地磁碟,則只需要在專案的pom.xml檔案中增加如下配置
```html
```
建立測試JavaBean
```java
@Data
public class Student implements Serializable {
private static final long serialVersionUID = -2987207599880734028L;
private int id;
private String name;
private String sex;
public Student(){
}
public Student(int id, String name, String sex){
this.id = id;
this.name = name;
this.sex = sex;
}
}
```
接下來,在程式中按照如下方式匯出Excel檔案即可
```java
public static void main(String[] args) throws Exception{
ExportEx