数据导出方法和装置制造方法及图纸

技术编号:13290621 阅读:80 留言:0更新日期:2016-07-09 09:12
本发明专利技术提供了一种数据导出方法,所述方法包括:接收数据导出请求;从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将对应的数据分块输出到预先创建的缓冲区中;当缓冲区填满时将缓冲区中的数据分块输出到磁盘中,并清空所述缓冲区;当数据分块输出完毕,合并输出的数据分块。采用该方法,可以降低内存占用率。此外,还提供了一种数据导出装置。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种数据导出方法和装置
技术介绍
在很多软件应用中,都有将其中大量数据导出形成文件存储在本地的需求。比如,某些软件通过控件展示二维数据,控件是指用户可视的界面元素,例如按钮、选择框等。所述二维数据是指以行列形式组成的数据结构,例如数据库中的表。二维数据以单元格为数据存储单元,其上关联了存储样式,比如单元格的字体、字号、颜色、背景等可视化内容的数据结构。在很多应用场景下,都需要将展示的二维数据导出成表格文件存储到本地中。传统技术中,将二维数据导出时会将需要导出的全部数据获取一遍,转换为内存中间模型,该内存中间模型用来缓存全部二维数据。接着再将该内存中间模型转换为第三方POI需要的内存模型,POI是一个第三方采用GPL协议的开源软件,该软件定义了一套数据标准,采用该标准的数据可通过该软件转换为Excel数据格式。再通过POI的相关接口,将数据输出到磁盘中。然而,传统的这种数据导出方法在导出的过程中会生成多个数据模型,虽然在展示二维数据的控件使用虚模式进行数据加载的情况下可以减少部分内存占用,但是如果展示二维数据的控件使用实模式进行数据加载,则不能减少内存占用。其中虚模式是指展示二维数据的控件加载数据时只会记载用户查看的数据同时回收不查看数据占用的内容,而实模式是指展示二维数据的控件加载数据时会加载需要查看的全部数据。另外,传统的这种数据导出方法由于多个数据模型的存在,也会导致内存占用率高。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能降低内存占用率的数据导出方法和装置。一种数据导出方法,所述方法包括:接收数据导出请求;从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将对应的数据分块输出到预先创建的缓冲区中;当缓冲区填满时将缓冲区中的数据分块输出到磁盘中,并清空所述缓冲区;当数据分块输出完毕,合并输出的数据分块。在其中一个实施例中,所述从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将对应的数据分块输出到预先创建的缓冲区中的步骤包括:向所述数据包装器查询是否还有未输出的数据分块,若是,则从所述数据包装器获取数据属性信息和数据内容,将所述数据属性信息和数据内容输出到所述缓冲区中,否则,进入所述数据分块输出完毕,合并输出的数据分块的步骤。在其中一个实施例中,所述数据为二维数据;所述从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将对应的数据分块输出到预先创建的缓冲区中的步骤包括:向所述数据包装器查询是否还有未输出的数据行,若是,则将所述数据行中的单元格的内容和属性信息输出到所述缓冲区中,进一步向所述数据包装器查询是否还有未输出的单元格,若是,则继续将单元格的内容和属性信息到缓冲区中,否则进入当缓冲区填满时将缓冲区中的数据分块输出到磁盘中,并清空所述缓冲区的步骤;当查询到没有未输出的数据行时,进入当数据分块输出完毕,合并输出的数据分块的步骤。在其中一个实施例中,所述缓冲区的大小与所述数据分块大小相同。在其中一个实施例中,所述合并输出的数据分块的步骤包括:按照数据分块输出的顺序合并所述输出的数据分块。一种数据导出装置,所述装置包括:请求接收模块,用于接收数据导出请求;数据输出模块,用于从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将对应的数据分块输出到预先创建的缓冲区中;数据存储模块,用于当缓冲区填满时将缓冲区中的数据属性信息和数据分块输出到磁盘中,并清空所述缓冲区;数据合并模块,用于当数据分块输出完毕,合并输出的数据分块。在其中一个实施例中,所述数据输出模块用于向所述数据包装器查询是否还有未输出的数据分块,若是,则从所述数据包装器获取数据属性信息和数据内容,将所述数据属性信息和数据内容输出到所述缓冲区中,否则通知所述数据合并模块合并输出的数据分块。在其中一个实施例中,所述数据为二维数据;所述数据输出模块用于向所述数据包装器查询是否还有未输出的数据行,若是,则将所述数据行中的单元格的内容和属性信息输出到所述缓冲区中,进一步向所述数据包装器查询是否还有未输出的单元格,若是,则继续逐个输出单元格到缓冲区中,否则通知数据存储模块当缓冲区填满时将缓冲区中的数据分块输出到磁盘中,并清空所述缓冲区;所述数据处理模块还用于当查询到没有未输出的数据行时,通知所述数据合并模块合并输出的数据分块。在其中一个实施例中,所述缓冲区的大小与所述数据分块大小相同。在其中一个实施例中,所述数据合并模块用于按照数据分块输出的顺序合并所述输出的数据分块。上述数据导出方法和装置,通过从预设的数据包装器中获取数据分块大小,根据数据分块大小将数据分块输出到预先创建的缓冲区中,缓冲区填满时则将缓冲区中的数据分块输出到磁盘中,并清空缓冲区,当数据分块输出完毕,再合并输出的数据分块。相对于现有技术,由于不需要多个数据模型的存在,降低了内存占用率。且通过数据包装器就可以获取到数据分块大小,缓冲区填满后其中的内容就输出到磁盘中并清空缓冲区,只要针对数据分块大小创建相应的缓冲区即可实现数据导出,从而降低了内存占用率,使得业务系统可以响应更多的用户请求。附图说明图1为一个实施例中数据导出方法的原理图;图2为一个实施例中数据导出方法的流程图;图3为另一个实施例中数据导出方法的流程图;图4为再一个实施例中数据导出方法的流程图;图5为一个实施例中数据导出装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术所提供的数据导入方法,采用数据包装器定义数据属性信息和数据分块大小,在需要导出数据时,根据数据包装器定义的内容创建缓冲区,获取数据分块并输出到缓冲区中。以二维数据为例,如图1所示,数据包装器可以理解为数据获取接口标准,可由第三方使用者预先定义好并嵌入到软件中。在需要导出二维数据时,通过数据包装器获取到数据分块,将数据分块最终输出到磁盘中。如图2所示,在一个实施例中,提供了一种数据导出方法,包括:步骤202,接收数据导出请求。本实施例中,可通过界面上设置的控件接收数据导出请求。步骤204,从预设的数据包装器中获取数据分块大小,根据数据分块大小将对应本文档来自技高网
...

【技术保护点】
一种数据导出方法,所述方法包括:接收数据导出请求;从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将对应的数据分块输出到预先创建的缓冲区中;当缓冲区填满时将缓冲区中的数据分块输出到磁盘中,并清空所述缓冲区;当数据分块输出完毕,合并输出的数据分块。

【技术特征摘要】
1.一种数据导出方法,所述方法包括:
接收数据导出请求;
从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将对应
的数据分块输出到预先创建的缓冲区中;
当缓冲区填满时将缓冲区中的数据分块输出到磁盘中,并清空所述缓冲区;
当数据分块输出完毕,合并输出的数据分块。
2.根据权利要求1所述的数据导出方法,其特征在于,所述从预设的数据
包装器中获取数据分块大小,根据所述数据分块大小将对应的数据分块输出到
预先创建的缓冲区中的步骤包括:
向所述数据包装器查询是否还有未输出的数据分块,若是,则从所述数据
包装器获取数据属性信息和数据内容,将所述数据属性信息和数据内容输出到
所述缓冲区中,否则,进入所述数据分块输出完毕,合并输出的数据分块的步
骤。
3.根据权利要求1所述的数据导出方法,其特征在于,所述数据为二维数
据;所述从预设的数据包装器中获取数据分块大小,根据所述数据分块大小将
对应的数据分块输出到预先创建的缓冲区中的步骤包括:
向所述数据包装器查询是否还有未输出的数据行,若是,则将所述数据行
中的单元格的内容和属性信息输出到所述缓冲区中,进一步向所述数据包装器
查询是否还有未输出的单元格,若是,则继续将单元格的内容和属性信息输出
到缓冲区中,否则进入当缓冲区填满时将缓冲区中的数据分块输出到磁盘中,
并清空所述缓冲区的步骤;
当查询到没有未输出的数据行时,进入当数据分块输出完毕,合并输出的
数据分块的步骤。
4.根据权利要求1所述的数据导出方法,其特征在于,所述缓冲区的大小
与所述数据分块大小相同。
5.根据权利要求1所述的数据导出方法,其特征在于,所述合并输出的数
...

【专利技术属性】
技术研发人员:李佳
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1