本發明涉及一種網絡通信行業,特別是一種采用自動化或自定義處理模式的excel導出方法。
背景技術:
1、通常項目中遇到需要導出復雜表頭以及多個sheet(表單)的excel表格的需求處理的方法有:
2、(1)針對不同的業務場景,需要在controller層中編寫不同的excel導出方法。
3、(2)針對不同的業務場景,需要對前端傳入的參數進行逐一判斷和校驗。
4、(3)業務數據處理方法和excel導出框架方法不分離。如果需求發生變化或者excel框架需要增加新的附加功能,需要對每個業務層進行處理,工作量迅速增加,提高開發成本。
5、上述處理方法的缺點有:?1)前端的入參需要多次重復校驗。2)針對不同的業務場景,需要在控制層中編寫不同的excel導出方法。導致很多重復的代碼產生,不符合讓代碼“更易維護、擴展和提高復用率”的面向對象基本特征.?3)業務數據處理方法和excel框架方法不分離,導致耦合性高.?如需要對excel的框架方法添加新的功能,則需要對不同的業務類進行大量的改寫。
技術實現思路
1、本發明的目的在于提出一種excel導出方法,將與項目有關的業務數據處理和excel導出框架進行分離,互不干涉。
2、第一方面,提供一種excel導出方法,所述方法包括自動化和自定義兩種模式;
3、(1)自動化模式下,配置excel導出的參數,利用java的反射機制獲取業務數據,進而利用excel導出框架生成并導出excel文件;
4、(2)自定義模式下,在抽象類中自定義獲取業務數據的方法,在業務實現類中繼承并重寫獲取業務數據的方法,動態獲取業務數據,進而利用excel導出框架生成并導出excel文件。
5、作為本發明的優選方案,自動化模式下的excel導出方法包括:
6、(1.1)前端傳遞excel導出的參數,包括excel名稱、excel標題頭類型、sheet名稱及展示順序、sheet查詢關鍵字段、業務關鍵字和業務相關信息;
7、(1.2)根據業務關鍵字、sheet查詢關鍵字段以及業務相關信息,采用java的反射機制獲取業務數據;
8、(1.3)根據excel標題頭類型,設置單個或多個sheet的標題頭對象模板;
9、(1.4)將excel名稱、sheet名稱、標題頭對象模板及業務數據傳遞至excel導出框架,生成并導出excel文件。
10、作為本發明的優選方案,步驟(1.3)包括:
11、當excel標題頭類型為單一時,表示單個或多個sheet共用一個標題頭對象模板;
12、當excel標題頭類型為多樣時,表示多個sheet使用不同標題頭對象模板。
13、作為本發明的優選方案,在控制層調用iexcelexportautoservice接口,定義excelexportautoserviceimpl去實現該接口的自動化方法downloadautoexcel()。
14、作為本發明的優選方案,自定義模式下的excel導出方法包括:
15、(2.1)前端傳遞excel導出的參數,excel名稱、sheet名稱及展示順序、sheet查詢關鍵字段、標題頭、標題與字段映射關系、業務接口名稱和業務參數;
16、(2.2)后端通過業務接口名稱獲取業務實現類實例,調用抽象類提供的自定義獲取業務數據的方法;
17、(2.3)在業務實現類中重寫獲取業務數據的方法,根據標題與字段映射關系和sheet查詢關鍵字段動態獲取業務數據;
18、(2.4)?將excel名稱、sheet名稱及展示順序、標題頭和業務數據傳遞至excel導出框架,生成并導出excel文件。
19、作為本發明的優選方案,在控制層使用springapplicationcontextutil.getbean(servicecode)方法,獲取業務對應的實例對象,然后調用abstractdownloadcustomexcelservice抽象類中的downloadcustomeexcel()方法;
20、在downloadcustomeexcel()方法中開放一個getdatas()抽象方法,在業務層中若繼承了downloadcustomeexcel()方法,則重寫getdatas()抽象方法,從而獲取業務數據。
21、第二方面,還提供一種存儲一個或多個程序的計算機可讀存儲介質,所述一個或多個程序包括指令,所述指令當由計算設備執行時,使得所述計算設備執行如上所述的方法。
22、第三方面,還提供一種電子設備,包括一個或多個處理器、一個或多個存儲器以及一個或多個程序,其中一個或多個程序存儲在所述一個或多個存儲器中并被配置為由所述一個或多個處理器執行,所述一個或多個程序包括用于執行如上所述方法的指令。
23、本發明在業務邏輯層實現了一種自動化的接口,能夠導出單個或多個excel工作表(sheet),并支持復雜表頭的處理。這一設計基于模板設計模式,通過開放一個抽象類的抽象方法來處理業務數據的獲取和處理邏輯。該方法允許開發者根據不同的業務需求靈活編寫實現代碼,并通過統一的excel導出框架完成導出操作。無論是處理簡單數據還是復雜的業務場景,該設計都能夠有效地滿足需求。該發明通過三層架構的設計,結合抽象類、枚舉類和模板設計模式,實現了系統的靈活性和擴展性。特別是在處理大量數據交互和復雜excel導出的業務需求時,系統能夠提供高效、規范的代碼解決方案,確保數據處理的準確性和易用性。
1.一種excel導出方法,其特征在于,所述方法包括自動化和自定義兩種模式;
2.根據權利要求1所述的方法,其特征在于,自動化模式下的excel導出方法包括:
3.根據權利要求2所述的方法,其特征在于,步驟(2.3)包括:
4.根據權利要求2所述的方法,其特征在于,在控制層調用iexcelexportautoservice接口,定義excelexportautoserviceimpl去實現該接口的自動化方法downloadautoexcel()。
5.根據權利要求1所述的方法,其特征在于,自定義模式下的excel導出方法包括:
6.根據權利要求5所述的方法,其特征在于,在控制層使用springapplicationcontextutil.getbean(servicecode)方法,獲取業務對應的實例對象,然后調用abstractdownloadcustomexcelservice抽象類中的downloadcustomeexcel()方法;
7.一種存儲一個或多個程序的計算機可讀存儲介質,所述一個或多個程序包括指令,其特征在于,所述指令當由計算設備執行時,使得所述計算設備執行如權利要求1至6中任一所述的方法。
8.一種電子設備,其特征在于,包括一個或多個處理器、一個或多個存儲器以及一個或多個程序,其中一個或多個程序存儲在所述一個或多個存儲器中并被配置為由所述一個或多個處理器執行,所述一個或多個程序包括用于執行如權利要求1至6中任一所述方法的指令。