基于POI生成Excel文件的方法、电子设备及存储介质技术

技术编号:36869607 阅读:13 留言:0更新日期:2023-03-15 19:39
本发明专利技术涉及数据处理技术领域,具体提供一种基于POI生成Excel文件的方法、电子设备及计算机可读存储介质,旨在解决POI框架生成Excel文件时存在大量重复、繁琐复杂的代码,影响开发人员后期维护的成本,增加开发成本的问题。为此,本发明专利技术的方法包括:在POI框架中封装自定义的工作簿函数、表单元素函数以及生成工具类;调用工作簿函数创建第一工作簿对象,其中,第一工作簿对象中定义表单元素集合;调用表单元素函数创建表单元素并将创建的表单元素写入表单元素集合中,得到第二工作簿对象;利用生成工具类将第二工作簿对象持久化为Excel文件。通过上述方法,能够有效地减少重复的代码,从而降低代码的复杂度,降低开发人员的后期维护难度,进而减少开发成本。进而减少开发成本。进而减少开发成本。

【技术实现步骤摘要】
基于POI生成Excel文件的方法、电子设备及存储介质


[0001]本专利技术涉及数据处理
,具体提供一种基于POI生成Excel文件方法、电子设备及计算机可读存储介质。

技术介绍

[0002]随着信息化建设的发展,各行各业的业务都需要在网上进行数据处理,而在数据处理过程中,经常需要将根据数据生成Excel文件。然而,我们常用的Office虽然是面向用户的,用户可以直接使用,但是,因为微软没有提供接入Office的接口,所以并不能灵活的将Office集成进入第三方系统中,进而导致用户无法在第三方系统中使用Excel功能。
[0003]现有技术中在第三方系统中对Excel文件的快速制作主要采用POI开源框架。但是POI开源框架的公开使用文档不全,对Excel文件的读取和写入需要写入大量代码,例如,如果要画一条横宽20个单元格的水平线,那么需要创建1行然后创建20个单元格,分别设置上边框或者下边框,如果要画一条竖高20个单元格的竖线,那么需要创建10行然后创建20个单元格,分别设置左边框或者右边框,详见如下部分代码:详见如下部分代码:
[0004]由上述代码可知,在代码层面需要编程创建第1个单元格,设置一系列参数;然后创建第2个单元格,设置对应参数,一直到第20个单元格,这时,就使得开发程序中存在大量重复的代码,且在实现复杂的Excel文件时,代码会更加的繁琐、复杂,增加了开发人员后期维护的难度,增加开发成本。
[0005]相应地,本领域需要一种新的基于POI生成Excel文件的方案来解决上述问题。

技术实现思路

[0006]为了克服上述缺陷,提出了本专利技术,以提供解决或至少部分地解决POI框架生成Excel文件时存在大量重复、繁琐复杂的代码,影响开发人员后期维护的成本,增加开发成本的技术问题的基于POI生成Excel文件的方法、电子设备及存储介质。
[0007]在第一方面,本专利技术提供一种基于POI生成Excel文件的方法,所述方法包括:在POI框架中封装自定义的工作簿函数、表单元素函数以及生成工具类;调用所述工作簿函数创建第一工作簿对象,其中,所述第一工作簿对象中定义表单元素集合;调用所述表单元素函数创建表单元素并将创建的所述表单元素写入所述表单元素集合中,得到第二工作簿对象;利用所述生成工具类将所述第二工作簿对象持久化为Excel文件。
[0008]在上述基于POI生成Excel文件的方法的一个技术方案中,“调用所述表单元素函数创建表单元素”的步骤具体包括:根据所述表单元素函数创建表单对象;定义所述表单对象的至少一个对象属性;分别将定义的所有所述对象属性写入所述表单对象中,得到表单元素。
[0009]在上述基于POI生成Excel文件的方法的一个技术方案中,所述表单元素函数为线条函数,所述表单元素为线条,“根据所述表单元素函数创建表单对象”的步骤具体包括:根据所述线条函数创建线条对象;“定义所述表单对象的至少一个对象属性”的步骤具体包括:分别定义所述线条对象的开始单元格的行号和列号,其中,所述开始单元格的行号和列号均为正整数;分别定义所述线条对象的结束单元格的行号和列号,其中,所述结束单元格的行号和列号均为正整数且大于所述开始单元格的行号和列号;定义所述线条对象的线条类型;定义所述线条对象的线条颜色;“分别将定义所述对象属性写入所述表单对象中,得到表单元素”的步骤具体包括:分别将所述线条对象的开始单元格的行号和列号、结束单元格的行号和列号、线条类型以及线条颜色写入所述线条对象中,得到所述线条;其中,所述开始单元格的行号等于所述结束单元格的行号或者所述开始单元格的列号等于所述结束单元格的列号。
[0010]在上述基于POI生成Excel文件的方法的一个技术方案中,所述表单元素函数为单元格函数,所述表单元素为第一单元格,“根据所述表单元素函数创建表单对象”的步骤具体包括:根据所述单元格函数创建第一单元格对象;“定义所述表单对象的至少一个对象属性”的步骤具体包括:分别定义所述第一单元格对象的行号和列号,其中,所述第一单元格对象的行号和列号均为正整数;定义所述第一单元格对象的数据内容;“分别将定义所述对象属性写入所述表单对象中,得到表单元素”的步骤具体包括:分别将所述第一单元格对象的行号、列号以及数据内容写入所述第一单元格对象中,得到所述第一单元格。
[0011]在上述基于POI生成Excel文件的方法的一个技术方案中,所述表单元素函数为图片函数,所述表单元素为图片,“根据所述表单元素函数创建表单对象”的步骤具体包括:根
据所述图片函数创建图片对象;“定义所述表单对象的至少一个对象属性”的步骤具体包括:分别定义所述图片对象的开始单元格行号和列号,其中,所述开始单元格的行号和列号均为正整数;分别定义所述图片对象的结束单元格的行号和列号,其中,所述结束单元格的行号和列号均为正整数且大于所述开始单元格的行号和列号;分别定义所述图片对象在开始单元格内的开始坐标和结束单元格内的结束坐标;定义所述图片对象的图片数据;“分别将定义所述对象属性写入所述表单对象中,得到表单元素”的步骤具体包括:分别将所述图片对象的开始单元格行号和列号、结束单元格的行号和列号、图片对象在开始单元格内的开始坐标和结束单元格内的结束坐标以及图片对象的图片数据写入到所述图片对象中,得到所述图片。
[0012]在上述基于POI生成Excel文件的方法的一个技术方案中,,所述表单元素函数为单元格函数,所述方法还包括:根据所述单元格函数创建第二单元格对象;分别定义所述第二单元格对象的开始的行号和列号,其中,所述第二单元格对象的开始的行号和列号为正整数;分别定义所述第二单元格对象的合并的行数和列数;定义所述第二单元格对象的合并单元格状态;分别将所述第二单元格对象的开始的行号和列号、合并的行数和列数以及合并单元格状态写入到所述第二单元格对象,得到第二单元格;“利用所述生成工具类将所述第二工作簿对象持久化为Excel文件”的步骤具体包括:利用所述生成工具类调用所述第二工作簿对象中的第二单元格完成单元格合并,并将第二工作簿对象持久化为Excel文件。
[0013]在上述基于POI生成Excel文件的方法的一个技术方案中,“利用所述生成工具类调用所述第二工作簿对象中的第二单元格完成单元格合并”的步骤具体包括:获取所述第二单元格的合并单元格状态;若所述合并单元格状态为TRUE,则利用所述生成工具类调用所述第二工作簿对象中的第二单元格完成单元格合并;若所述合并单元格状态为FALSE,则不执行合并单元格功能。
[0014]在上述基于POI生成Excel文件的方法的一个技术方案中,所述表单元素函数为单元格函数,所述方法还包括:根据所述单元格函数创建第三单元格对象;分别定义所述第三单元格对象的样式属性;和/或,分别定义所述第三单元格对象的数据的样式属性;和/或,分别定义所述第三单元格对象的数据的位置属性;分别将所述第三单元格对象的样式属性和/或数据的样式属性和/或数据的位置属性写入到所述第三单元格对象,得到第三单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于POI生成Excel文件的方法,其特征在于,所述方法包括:在POI框架中封装自定义的工作簿函数、表单元素函数以及生成工具类;调用所述工作簿函数创建第一工作簿对象,其中,所述第一工作簿对象中定义表单元素集合;调用所述表单元素函数创建表单元素并将创建的所述表单元素写入所述表单元素集合中,得到第二工作簿对象;利用所述生成工具类将所述第二工作簿对象持久化为Excel文件。2.根据权利要求1所述的基于POI生成Excel文件的方法,其特征在于,“调用所述表单元素函数创建表单元素”的步骤具体包括:根据所述表单元素函数创建表单对象;定义所述表单对象的至少一个对象属性;分别将定义的所有所述对象属性写入所述表单对象中,得到表单元素。3.根据权利要求2所述的基于POI生成Excel文件的方法,其特征在于,所述表单元素函数为线条函数,所述表单元素为线条,“根据所述表单元素函数创建表单对象”的步骤具体包括:根据所述线条函数创建线条对象;“定义所述表单对象的至少一个对象属性”的步骤具体包括:分别定义所述线条对象的开始单元格的行号和列号,其中,所述开始单元格的行号和列号均为正整数;分别定义所述线条对象的结束单元格的行号和列号,其中,所述结束单元格的行号和列号均为正整数且大于所述开始单元格的行号和列号;定义所述线条对象的线条类型;定义所述线条对象的线条颜色;“分别将定义所述对象属性写入所述表单对象中,得到表单元素”的步骤具体包括:分别将所述线条对象的开始单元格的行号和列号、结束单元格的行号和列号、线条类型以及线条颜色写入所述线条对象中,得到所述线条;其中,所述开始单元格的行号等于所述结束单元格的行号或者所述开始单元格的列号等于所述结束单元格的列号。4.根据权利要求2所述的基于POI生成Excel文件的方法,其特征在于,所述表单元素函数为单元格函数,所述表单元素为第一单元格,“根据所述表单元素函数创建表单对象”的步骤具体包括:根据所述单元格函数创建第一单元格对象;“定义所述表单对象的至少一个对象属性”的步骤具体包括:分别定义所述第一单元格对象的行号和列号,其中,所述第一单元格对象的行号和列号均为正整数;定义所述第一单元格对象的数据内容;“分别将定义所述对象属性写入所述表单对象中,得到表单元素”的步骤具体包括:分别将所述第一单元格对象的行号、列号以及数据内容写入所述第一单元格对象中,得到所述第一单元格。
5.根据权利要求2所述的基于POI生成Excel文件的方法,其特征在于,所述表单元素函数为图片函数,所述表单元素为图片,“根据所述表单元素函数创建表单对象”的步骤具体包括:根据所述图片函数创建图片对象;“定义所述表单对象的至少一个对象属性”的步骤具体包括:分别定义所述图片对象的开始单元格行号和列号,其中,所述开始单元格的行号和列号均为正整数;分别定义所述图片对象的结束单元格的行号和列号,其中,所述结束单元格的行号和列号均为正整数且大于所述开始单元格的行号和列号;分别定义所述图片对象在开始单元格内的开始坐标和结束单元格内的结束坐标;定义所述图片对象的图片数据;“分别将定义所述对象属性写入所述表单对象中,得到表单元素”的步骤具体包括:分别将所述图片对象的开始单元格行号和列号、结束单元格的行号和列号、图片对象在开始单元格内...

【专利技术属性】
技术研发人员:高伟
申请(专利权)人:北京结慧科技有限公司
类型:发明
国别省市:

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

1