System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() word文档生成方法、装置、设备、存储介质及产品制造方法及图纸_技高网

word文档生成方法、装置、设备、存储介质及产品制造方法及图纸

技术编号:43966655 阅读:39 留言:0更新日期:2025-01-07 21:52
本申请公开了一种word文档生成方法、装置、设备、存储介质及产品,涉及文档处理技术领域,所述的方法包括:通过生成docx格式的word文件对应的多个单文件;按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中;将多个所述单文件进行合并压缩,生成最终docx格式的word文档。本申请通过将word文件拆分式的生成多个单独的文件,然后根据每个批次数据的数据量上限值将内存中的word文档数据分批次保存至每个所述单文件中,从而能够占用的内存不超出内存范围,数据生成者只需要控制每个批次数据的大小就能控制内存占用量和生成时间的平衡。然后将所有单文件合并压缩,流式生成最终的文档。

【技术实现步骤摘要】

本申请涉及文档处理,尤其涉及一种word文档生成方法、装置、设备、存储介质及产品


技术介绍

1、现有生成的docx格式的word文件通常使用poi组件库。poi组件库在生成word文件时,需要在内存中构建出所有的文档对象,然后再将文档对象输出至文件。在需要生成类似报告等大体积文件的场景下,存在线性增长的内存占用问题。因为这个问题的存在,只要生成大体积的word文档,十分容易导致内存溢出,从而使得程序异常甚至操作系统异常。并且使用poi组件库读取word文件时,也需要将整个文件转换成文档对象存储在内存中,容易导致内存溢出的问题。


技术实现思路

1、本申请的主要目的在于提供一种word文档生成方法、装置、设备、存储介质及产品,旨在解决生成大体积的word文档时,存在线性增长的内存占用的技术问题。

2、为实现上述目的,本申请提出一种word文档生成方法,所述的方法包括:

3、生成docx格式的word文件对应的多个单文件;

4、按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中;

5、将多个所述单文件进行合并压缩,生成最终docx格式的word文档。

6、在一实施例中,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤之前,还包括:

7、获取当前可用内存;

8、依次获取每个批次数据中每片数据的大小;

9、根据所述当前可用内存和所述每片数据的大小确定每个批次数据的数据量上限值。

10、在一实施例中,所述多个单文件包括页眉文件、尾注文件、页脚文件和文档文件;

11、所述将多个所述单文件进行合并压缩,生成最终docx格式的word文档的步骤,包括:

12、将生成的所述尾注文件、所述页脚文件和所述页眉文件合并至所述文档文件中;

13、在所述文档文件的头部和尾部添加xml格式的闭合标签,获得完整的文档文件;

14、对所述完整的文档文件进行压缩,获得最终docx格式的word文档。

15、在一实施例中,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤,包括:

16、在所述单文件为所述页眉文件时,判断内存中的word文档数据中的页眉内容是否是文字;

17、若页眉内容是文字,则按照每个批次数据的数据量上限值根据所述页眉内容和属性修饰标签生成页眉的文字样式;

18、根据所述页眉内容和文本内容标签设置生成的页眉的文字内容,并将生成的页眉的文字样式和文字内容添加至页眉文件中。

19、在一实施例中,所述在所述单文件为所述页眉文件时,判断内存中的word文档数据中的页眉内容是否是文字的步骤之后,还包括:

20、若页眉内容是图片,则按照每个批次数据的数据量上限值根据所述页眉内容和绘图对象标签生成页眉的图片信息,并将生成的页眉的图片信息添加至页眉文件中。

21、在一实施例中,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤,包括:

22、在所述单文件为所述页脚文件时,按照每个批次数据的数据量上限值根据内存中的word文档数据中的页脚内容和页脚标签生成页脚信息,并将生成的页脚信息添加至页脚文件中;

23、在所述单文件为所述尾注文件时,按照每个批次数据的数据量上限值根据内存中的word文档数据中的尾注内容和尾注标签生成尾注信息,并将生成的尾注信息添加至尾注文件中。

24、此外,为实现上述目的,本申请还提出一种word文档生成装置,所述word文档生成装置包括:

25、单文件生成模块,用于生成docx格式的word文件对应的多个单文件;

26、文档数据保存模块,用于按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中;

27、word文档生成模块,用于将多个所述单文件进行合并压缩,生成最终docx格式的word文档。

28、此外,为实现上述目的,本申请还提出一种word文档生成设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的word文档生成方法的步骤。

29、此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的word文档生成方法的步骤。

30、此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的word文档生成方法的步骤。

31、本申请提供了一种word文档生成方法,通过生成docx格式的word文件对应的多个单文件;按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中;将多个所述单文件进行合并压缩,生成最终docx格式的word文档。本申请通过将docx格式的word文件拆分式的生成多个单独的文件,然后根据每个批次数据的数据量上限值将内存中的word文档数据分批次保存至每个所述单文件中,从而能够使得每次生成文档时占用的内存不超出已有的内存范围,数据生成者只需要控制每个批次数据的大小就能控制内存占用量和生成时间的平衡。然后将所有单文件合并压缩,流式生成最终的大体积的docx格式的word文档。

本文档来自技高网...

【技术保护点】

1.一种word文档生成方法,其特征在于,所述的方法包括:

2.如权利要求1所述的方法,其特征在于,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤之前,还包括:

3.如权利要求1所述的方法,其特征在于,所述多个单文件包括页眉文件、尾注文件、页脚文件和文档文件;

4.如权利要求3所述的方法,其特征在于,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤,包括:

5.如权利要求4所述的方法,其特征在于,所述在所述单文件为所述页眉文件时,判断内存中的word文档数据中的页眉内容是否是文字的步骤之后,还包括:

6.如权利要求3所述的方法,其特征在于,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤,包括:

7.一种word文档生成装置,其特征在于,所述word文档生成装置包括:

8.一种word文档生成设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至6中任一项所述的word文档生成方法的步骤。

9.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的word文档生成方法的步骤。

10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的word文档生成方法的步骤。

...

【技术特征摘要】

1.一种word文档生成方法,其特征在于,所述的方法包括:

2.如权利要求1所述的方法,其特征在于,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤之前,还包括:

3.如权利要求1所述的方法,其特征在于,所述多个单文件包括页眉文件、尾注文件、页脚文件和文档文件;

4.如权利要求3所述的方法,其特征在于,所述按照每个批次数据的数据量上限值将内存中的word文档数据保存至每个所述单文件中的步骤,包括:

5.如权利要求4所述的方法,其特征在于,所述在所述单文件为所述页眉文件时,判断内存中的word文档数据中的页眉内容是否是文字的步骤之后,还包括:

6.如权利要求3所述的方法,其特征在于,所述按照每个批次数据的数据量上限值将内存中的w...

【专利技术属性】
技术研发人员:刘财锋万振华王颉徐瑞祝
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

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

1