[發明專利]數據導出方法和裝置有效
| 申請號: | 201410768466.6 | 申請日: | 2014-12-12 |
| 公開(公告)號: | CN105740293B | 公開(公告)日: | 2019-07-23 |
| 發明(設計)人: | 李佳 | 申請(專利權)人: | 金蝶軟件(中國)有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06;G06F9/50 |
| 代理公司: | 廣州華進聯合專利商標代理有限公司 44224 | 代理人: | 何平 |
| 地址: | 518000 廣東省深圳市南山區*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 導出 方法 裝置 | ||
本發明提供了一種數據導出方法,所述方法包括:接收數據導出請求;從預設的數據包裝器中獲取數據分塊大小,根據所述數據分塊大小將對應的數據分塊輸出到預先創建的緩沖區中;當緩沖區填滿時將緩沖區中的數據分塊輸出到磁盤中,并清空所述緩沖區;當數據分塊輸出完畢,合并輸出的數據分塊。采用該方法,可以降低內存占用率。此外,還提供了一種數據導出裝置。
技術領域
本發明涉及計算機技術領域,特別是涉及一種數據導出方法和裝置。
背景技術
在很多軟件應用中,都有將其中大量數據導出形成文件存儲在本地的需求。比如,某些軟件通過控件展示二維數據,控件是指用戶可視的界面元素,例如按鈕、選擇框等。所述二維數據是指以行列形式組成的數據結構,例如數據庫中的表。二維數據以單元格為數據存儲單元,其上關聯了存儲樣式,比如單元格的字體、字號、顏色、背景等可視化內容的數據結構。在很多應用場景下,都需要將展示的二維數據導出成表格文件存儲到本地中。
傳統技術中,將二維數據導出時會將需要導出的全部數據獲取一遍,轉換為內存中間模型,該內存中間模型用來緩存全部二維數據。接著再將該內存中間模型轉換為第三方POI需要的內存模型,POI是一個第三方采用GPL協議的開源軟件,該軟件定義了一套數據標準,采用該標準的數據可通過該軟件轉換為Excel數據格式。再通過POI的相關接口,將數據輸出到磁盤中。
然而,傳統的這種數據導出方法在導出的過程中會生成多個數據模型,雖然在展示二維數據的控件使用虛模式進行數據加載的情況下可以減少部分內存占用,但是如果展示二維數據的控件使用實模式進行數據加載,則不能減少內存占用。其中虛模式是指展示二維數據的控件加載數據時只會記載用戶查看的數據同時回收不查看數據占用的內容,而實模式是指展示二維數據的控件加載數據時會加載需要查看的全部數據。另外,傳統的這種數據導出方法由于多個數據模型的存在,也會導致內存占用率高。
發明內容
基于此,有必要針對上述技術問題,提供一種能降低內存占用率的數據導出方法和裝置。
一種數據導出方法,所述方法包括:
接收數據導出請求;
從預設的數據包裝器中獲取數據分塊大小,根據所述數據分塊大小將對應的數據分塊輸出到預先創建的緩沖區中;
當緩沖區填滿時將緩沖區中的數據分塊輸出到磁盤中,并清空所述緩沖區;
當數據分塊輸出完畢,合并輸出的數據分塊。
在其中一個實施例中,所述從預設的數據包裝器中獲取數據分塊大小,根據所述數據分塊大小將對應的數據分塊輸出到預先創建的緩沖區中的步驟包括:
向所述數據包裝器查詢是否還有未輸出的數據分塊,若是,則從所述數據包裝器獲取數據屬性信息和數據內容,將所述數據屬性信息和數據內容輸出到所述緩沖區中,否則,進入所述數據分塊輸出完畢,合并輸出的數據分塊的步驟。
在其中一個實施例中,所述數據為二維數據;所述從預設的數據包裝器中獲取數據分塊大小,根據所述數據分塊大小將對應的數據分塊輸出到預先創建的緩沖區中的步驟包括:
向所述數據包裝器查詢是否還有未輸出的數據行,若是,則將所述數據行中的單元格的內容和屬性信息輸出到所述緩沖區中,進一步向所述數據包裝器查詢是否還有未輸出的單元格,若是,則繼續將單元格的內容和屬性信息到緩沖區中,否則進入當緩沖區填滿時將緩沖區中的數據分塊輸出到磁盤中,并清空所述緩沖區的步驟;
當查詢到沒有未輸出的數據行時,進入當數據分塊輸出完畢,合并輸出的數據分塊的步驟。
在其中一個實施例中,所述緩沖區的大小與所述數據分塊大小相同。
在其中一個實施例中,所述合并輸出的數據分塊的步驟包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于金蝶軟件(中國)有限公司,未經金蝶軟件(中國)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410768466.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:兩段加氫生產白色微晶蠟的方法
- 下一篇:一種解碼方法及裝置
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





