一种EXCEL模板文件的生成方法及系统与流程

文档序号:33895924发布日期:2023-04-21 04:54阅读:77来源:国知局
一种EXCEL模板文件的生成方法及系统与流程

本发明涉及计算机软件,具体涉及一种excel模板文件的生成方法及系统。


背景技术:

1、apachepoi(poor 0bfuscation impl ementat io)是由apache基金会开发的开放源码函式库,是用java编写的免费开源的跨平台的java api,apache poi提供api给java程序对microsoft office格式档案读和写的功能。用于操作符合微软open xml标准以及微软0le2复合文档格式的java工具,是用java编写的免费开源的跨平台的java api,具备提供api给java程式对microsoftoffice格式档案读和写的功能。poi为“poor obfuscationimplementation”的首字母缩写,意为“简洁版的模糊实现”。

2、常用的jxl,模板配置十分强大,但却存在性能问题,如:当系统需要很多表格导出时,针对报表的不同类型,如纵向报表、横向报表、隐藏列以及动态生成表头标题等,jxl在一次性导出百万级别数据并且有并发的时候,由于数据都加载在内存中,而内存短时间无法得到释放,此时若有新的请求,就会把内存撑满,导致服务宕机。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种excel模板文件的生成方法,以解决现有技术中针对数据库中不同类型的报表,由于内存过满,短时间无法批量导出数据而导致的服务不可用,性能低下的问题。

2、根据本发明实施例的第一方面,一种excel模板文件的生成方法,包括:

3、对数据库中待导出的excel模板配置信息;

4、从所述配置信息中解析出待导出sheet的标题和单元格信息;

5、创建新的sheet,将解析出的标题渲染到新建的sheet中;

6、根据所述单元格信息,将所述excel模板中每个单元格的内容渲染到所述sheet中,并将所述excel模板的条件格式复制到所述sheet中;

7、将所述sheet中具有相同字段名和内容的单元格进行合并;

8、删除所述excel模板,并将所述sheet中的数据刷进磁盘中,以备用户导出。

9、进一步的,所述创建新的sheet,将解析出的标题渲染到新建的sheet中,包括:

10、根据解析出的标题的行索引,将所述标题渲染到新建的sheet的对应位置。

11、进一步的,所述单元格信息包括:表头及每个单元格的占位符,所述根据所述单元格信息,将所述excel模板中每个单元格的内容渲染到所述sheet中,包括:

12、对于表头,若当前单元格的占位符为$,将当前单元格的内容纵向渲染到所述sheet中;若当前单元格的占位符为#,将当前单元格的内容横向渲染到所述sheet中;

13、对于非表头,从第一行轮询到最后一行,从第一列轮询到最后一列,根据每个单元格对应在表头中的字段名,将每个单元格的内容对应渲染到所述sheet中。

14、进一步的,所述根据每个单元格对应在表头中的字段名,将每个单元格的内容对应渲染到所述sheet中,包括:

15、若excel模板中当前被轮询的单元格所对应在表头中的字段名与所述sheet中的某个单元格对应在表头中的字段名相同,将excel模板中该单元格的内容渲染到所述sheet中对应的单元格中;

16、在将excel模板中该单元格的内容渲染到所述sheet中对应的单元格中时,若该单元格的占位符为$,将该单元格的内容纵向渲染到所述sheet中;若该单元格的占位符为#,将该单元格的内容横向渲染到所述sheet中。

17、进一步的,所述将所述excel模板的条件格式复制到所述sheet中,具体为:

18、根据excel模板中每个单元格对应在表头中的字段名,记录每个单元格的行索引和列索引;

19、根据所述行索引和列索引,读取对应单元格的条件格式,并将所述条件格式复制到所述sheet的对应单元格中。

20、进一步的,所述将所述excel模板的条件格式复制到所述sheet中包括:

21、所述excel模板的条件格式包含隐藏格式。

22、根据本发明实施例的第二方面,一种excel模板文件生成系统,包括:

23、配置文件获取单元,用于对数据库中待导出的excel模板配置信息,从所述配置信息中解析出待导出sheet的标题和单元格信息,创建新的sheet,将解析出的标题渲染到新建的sheet中;

24、excel文件生成单元,用于将所述sheet中具有相同字段名和内容的单元格进行合并;删除所述excel模板,并将所述sheet中的数据刷进磁盘中,以备用户导出。

25、本发明的实施例提供的技术方案可以包括以下有益效果:

26、通过对数据库中待导出的excel模板配置信息,用于识别excel模板中不同类型报表的识别,从所述配置信息中解析出待导出sheet的标题和单元格信息,将解析出的标题渲染到一个新建的sheet中,根据所述单元格信息,将所述excel模板中每个单元格的内容渲染到所述sheet中,并将所述excel模板的条件格式复制到所述sheet中。将所述sheet中具有相同字段名和内容的单元格进行合并,删除所述excel模板,并将所述sheet中的数据刷进磁盘中,以备用户导出。如此,将数据库中需要导出的excel模板通过配置信息,模板化的刷新到硬盘中,通过不断的模块化刷新导出数据到excel文件中,最终实现数据百万级的导出。

27、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。



技术特征:

1.一种excel模板文件的生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述创建新的sheet,将解析出的标题渲染到新建的sheet中,包括:

3.根据权利要求1所述的方法,其特征在于,所述单元格信息包括:表头及每个单元格的占位符,所述根据所述单元格信息,将所述excel模板中每个单元格的内容渲染到所述sheet中,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据每个单元格对应在表头中的字段名,将每个单元格的内容对应渲染到所述sheet中,包括:

5.根据权利要求3所述的方法,其特征在于,所述将所述excel模板的条件格式复制到所述sheet中,具体为:

6.根据权利要求5所述的方法,所述将所述excel模板的条件格式复制到所述sheet中包括:

7.一种excel模板文件生成系统,其特征在于,包括:


技术总结
本发明涉及计算机软件技术领域,具体涉及一种EXCEL模板文件的生成方法及系统。通过对数据库中待导出的EXCEL模板配置信息,用于识别EXCEL模板中不同类型报表的识别,从所述配置信息中解析出待导出sheet的标题和单元格信息,将解析出的标题渲染到一个新建的sheet中,根据所述单元格信息,将所述EXCEL模板中每个单元格的内容渲染到所述sheet中,并将所述EXCEL模板的条件格式复制到所述sheet中。将所述sheet中具有相同字段名和内容的单元格进行合并,删除所述EXCEL模板,并将所述sheet中的数据刷进磁盘中,以备用户导出。如此,将数据库中需要导出的EXCEL模板通过配置信息,模板化的刷新到硬盘中,通过不断的模块化刷新导出数据到excel文件中,最终实现数据百万级的导出。

技术研发人员:江思飞,周壮
受保护的技术使用者:上海中通吉网络技术有限公司
技术研发日:
技术公布日:2024/1/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1