[發明專利]導出excel數據的方法、存儲介質及電子設備有效
| 申請號: | 201710773209.5 | 申請日: | 2017-08-31 |
| 公開(公告)號: | CN107632880B | 公開(公告)日: | 2021-05-04 |
| 發明(設計)人: | 王舒嵐 | 申請(專利權)人: | 深圳市豐巢科技有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F16/25 |
| 代理公司: | 廣東良馬律師事務所 44395 | 代理人: | 馬戎 |
| 地址: | 518000 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 導出 excel 數據 方法 存儲 介質 電子設備 | ||
本發明公開導出excel數據的方法、存儲介質及電子設備,方法包括步驟:A、根據所需導出的excel數據總頁數和每個sheet表單所需寫入的頁碼數計算需要的sheet表單數量;B、生成SXSSFWorkbook對象,并針對每個sheet表單開啟一個線程,將對應的excel數據寫入SXSSFWorkbook對象中;C、當各線程執行完畢后,通過IO輸出SXSSFWorkbook對象。本發明采用多線程,通過多點續作的方式,加快java對象占用的內存空間回收,降低內存占用,增強系統穩定性,擴展可導出的數據量,提高響應效率。
技術領域
本發明涉及Java技術開發領域,尤其涉及導出excel數據的方法、存儲介質及電子設備。
背景技術
在實際應用中,有時需要一次性導出百萬級別的excel格式數據,很容易出現java.lang.OutOfMemoryException異常(內存溢出),導致請求失敗,甚至系統崩潰,同系統的其他服務也不能正常提供。
業內的普遍做法是以IO流的方式導出csv格式的數據,但csv格式不能設置樣式和數據格式,滿足不了業務需求。或者要求用戶盡量縮短查詢范圍,多次導出,然后由業務方對多個文件進行合并,極大的加大了工作量,而且容易遺漏某些情況導致數據誤差。
因此,現有技術還有待于改進和發展。
發明內容
鑒于上述現有技術的不足,本發明的目的在于提供導出excel數據的方法、存儲介質及電子設備,旨在解決現有技術中excel數據導出方式存在的穩定性差、可導出的數據量有限等問題。
本發明的技術方案如下:
一種基于多線程的多點續作方式導出excel數據的方法,其中,包括步驟:
A、根據所需導出的excel數據總頁數和每個sheet表單所需寫入的頁碼數計算需要的sheet表單數量;
B、生成SXSSFWorkbook對象,并針對每個sheet表單開啟一個線程,將對應的excel數據寫入SXSSFWorkbook對象中;
C、當各線程執行完畢后,通過IO輸出SXSSFWorkbook對象。
所述的基于多線程的多點續作方式導出excel數據的方法,其中,所述步驟A具體包括:
A1、預先設置每頁查詢數量和每個sheet表單最多可以寫入的頁碼數;
A2、獲取excel數據總頁數;
A3、根據excel數據總頁數和每個sheet表單所需寫入的頁碼數計算需要的sheet表單數量。
所述的基于多線程的多點續作方式導出excel數據的方法,其中,所述步驟B具體包括:
B1、創建SXSSFWorkbook對象;
B2、針對每個sheet表單開啟一個線程,創建sheet表單以及相應表頭信息,計算sheet表單所對應的頁面范圍;
B3、分頁查詢excel數據,并將對應頁面范圍內的excel數據寫入SXSSFWorkbook對象。
所述的基于多線程的多點續作方式導出excel數據的方法,其中,所述步驟C具體包括:
C1、監控各子線程是否執行完畢;
C2、當所有子線程都執行完畢后,將生成的SXSSFWorkbook對象進行輸出。
所述的基于多線程的多點續作方式導出excel數據的方法,其中,所述步驟A1中,每頁查詢數量為pageSize,每個sheet表單最多可以寫入的頁碼數為sheetSize,pageSize*sheetSize≤1048576。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市豐巢科技有限公司,未經深圳市豐巢科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710773209.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





