一种基于Qt资源文件的Excel文档生成方法及系统技术方案

技术编号:20271930 阅读:31 留言:0更新日期:2019-02-02 03:27
一种基于Qt资源文件的Excel文档生成方法及系统,(1)首先根据实际的报表要求,制作Excel文档,形成报表模板;(2)使用Qt开发环境将步骤(1)形成的Excel文档加入到Qt工程的资源文件当中;(3)当步骤(2)加入资源文件的Qt工程需要生成报表格式的Excel文档时,释放资源文件到指定的工作目录;使用QAxObject对释放的资源文件进行单元格的填写操作;保存步骤(4)填写操作后的Excel文档,释放资源。本发明专利技术将复杂的文档格式制作工作放在了前期,减少了代码Excel操作的复杂度;使用的QAxObject操作简便、难度低,缩短了编程人员的开发周期;使用QAxObject为开源的Qt类,免费使用,节约了开发成本。

【技术实现步骤摘要】
一种基于Qt资源文件的Excel文档生成方法及系统
本专利技术涉及一种基于Qt资源文件的Excel文档生成方法及系统,特别针对激光惯组试验结果的数据报表Excel文档生成,在Qt程序设计开发领域具有通用性。
技术介绍
Qt是一个以C++语言为基础的图形用户开发框架,具有强大的跨平台可移植性和开源可裁剪等特点。使用Qt只须一次性开发应用程序,无需重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序,成为当下主流的应用软件开发工具之一。在使用Qt开发软件的过程中,不仅需要进行复杂的计算和繁琐的逻辑处理,往往还需要对数据进行报表形式的存储。Excel在表格操作、数据处理、兼容性、报表制作等方面的优势,使其成为很多软件开发过程中的主流工具。通常的做法是,通过软件将数据保存为文本文件,然后人为新建Excel文档,进行线下数据录入、处理和报表生成。人工处理数据会带来繁琐的工作量,出现误操作,影响工作效率和数据准确性。因此,采用Qt进行Excel文档的操作和生成工作,对于实际的工程应用中数据处理和报表生产具有重要的意义。针对Qt生成Excel的解决方案,目前有三种方式。方式一:将数据保存到文本文件中,使用空格和占位符按照Excel的格式将数据隔开,保存的文本文件使用Excel打开,按照空格分列。该方式具有以下缺点:(1)合并单元格的操作较难实现;(2)空格、占位符需要进行复杂的设计;(3)保存的数据类型、精度等一旦改变需要重新设计;(4)需要人工线下文件操作,效率较低。方式二:Qt支持的第三方Excel库,主要有QtXlsx、libxls、LibXl。使用第三方库生成Excel文档能够实现复杂的单元格操作,该方式存在以下缺点:(1)部分第三方库需要收费,如LibXl,增加了开发成本;(2)对于复杂格式的Excel文件,需要调用第三方库的API进行合并单元格、单元格属性设置等详细的设计,开发难度大、周期长。方式三:使用QAxObject+VBA,Excel是基于COM技术的应用程序,用来简化访问非可视化的COM对象。VBA是新一代标准宏语言,支持面向对象的程序设计语言。该方法能够像方式二中第三方库一样实现对Excel的复杂操作,使用方法较为复杂,面对复杂的Excel文档格式,具有开发难度大和周期长的特点。
技术实现思路
本专利技术解决的技术问题为:克服现有技术的不足,提供一种基于Qt资源文件的Excel文档生成方法及系统,针对上述三种方式的优缺点,Excel文档事先制作完成嵌入到Qt工程当中,Qt只负责对文档内容的填写、保存工作,解决了现有解决方案中效率低、成本高、难度大、周期长等问题。本专利技术解决的技术方案为:一种基于Qt资源文件的Excel文档生成方法,步骤如下:(1)首先根据实际的报表格式要求,制作Excel文档,形成报表模板;(2)使用Qt开发环境将步骤(1)形成的Excel文档加入到Qt工程的资源文件当中;(3)当步骤(2)加入资源文件的Qt工程需要生成报表格式的Excel文档(报表格式在步骤(1)制作的报表模板中已设置)时,释放资源文件到指定的工作目录;(4)使用QAxObject对步骤(3)释放的资源文件进行单元格的填写操作;(5)保存步骤(4)填写操作后的Excel文档,释放资源。报表要求,包括:单元格合并设置,行高、列宽设置、字体格式设置,对齐设置,背景色设置,报表中单元格的有效位数的设置,边框的设置,特殊字符的输入。制作的Excel文档,按照报表要求设置了个单元格的格式,不填充具体内容。Qt工程,包括资源文件、编译文件(pro文件)、应用文件(头文件,源文件,界面文件)。QAxObject是一个包装了COM对象的QObject子类。填写操作,包括:用QAxObject访问Excel对象,定位到单元格,对单元格按照要求的报表内容进行填写。释放资源,是指删除步骤(4)填写操作过程中产生的局部指针变量,释放动态分配的内存空间。步骤(4)使用QAxObject对释放的资源文件进行单元格的填写操作时,会产生局部指针变量,用于连接Excel的过程变量。Qt是一个以C++语言为基础的图形用户开发框架。Qt负责对Excel文档内容的填写、保存工作。一种基于Qt资源文件的Excel文档生成系统,包括:模板形成模块、加入模块、释放资源文件模块、填写模块和保存与释放模块模板形成模块首先根据实际的报表格式要求,制作Excel文档,形成报表模板,送至加入模块;加入模块使用Qt开发环境将模板形成模块形成的Excel文档加入到Qt工程的资源文件当中;释放资源文件模块当加入模块加入资源文件的Qt工程需要生成报表格式的Excel文档时,释放资源文件到指定的工作目录;填写模块使用QAxObject对释放资源文件模块释放的资源文件进行单元格的填写操作后送至保存与释放模块;保存与释放模块保存填写模块填写操作后的Excel文档,释放资源。本专利技术与现有技术相比的优点在于:(1)本专利技术将复杂的文档格式制作工作放在了前期,减少了代码操作Excel的复杂度;(2)本专利技术使用的QAxObject操作简便、难度低,缩短了编程人员的开发周期;(3)本专利技术使用QAxObject为开源的Qt类,免费使用,节约了开发成本;(4)本专利技术与现有的技术相比,简化和设计流程,降低了开发难度,工程上易于实现;(5)本专利技术能够广泛的运用到涉及Qt开发中需要生成Excel文档的工程当中,具有普遍的工程应用价值。附图说明图1是Excel文档生成流程图;图2为本专利技术优选的报表示意图。具体实施方式下面结合附图和具体实施例对本专利技术做进一步详细描述。本专利技术一种基于Qt资源文件的Excel文档生成方法及系统,(1)首先根据实际的报表要求,制作Excel文档,形成报表模板;(2)使用Qt开发环境将步骤(1)形成的Excel文档加入到Qt工程的资源文件当中;(3)当步骤(2)加入资源文件的Qt工程需要生成报表格式的Excel文档时,释放资源文件到指定的工作目录;使用QAxObject对释放的资源文件进行单元格的填写操作;保存步骤(4)填写操作后的Excel文档,释放资源。本专利技术将复杂的文档格式制作工作放在了前期,减少了代码Excel操作的复杂度;使用的QAxObject操作简便、难度低,缩短了编程人员的开发周期;使用QAxObject为开源的Qt类,免费使用,节约了开发成本。如图1所示,一种基于Qt资源文件的Excel文档生成方法,步骤如下:(1)根据工作任务要求的报表格式,制作Excel模板,本方法中的报表示意图如图2所示,文件名称为“XX.xls”。文件中包括希腊字母、数学字符等特殊符号,文件中“惯组号”和“测试时间”单元格数字属性为“常规”,空白单元格数字属性为“科学计数”,7位有效数字。制作过程对Excel进行了合并单元格、边框设置、线宽设置等操作。(2)把XX.xls文件拷贝到Qt工程的根目录下,使用Qt开发环境(QtCreator)打开工程,输入资源文件名,打开rc.qrc,选择AddPrefix添加前缀,将生成的“/new/prefix”修改为“/”,然后选择XX.xls文件,导入为工程的资源文件;(3)流程开始,通过Qfile的copy操作,复制资源文件到目标文本文档来自技高网
...

【技术保护点】
1.一种基于Qt资源文件的Excel文档生成方法,其特征在于步骤如下:(1)首先根据实际的报表格式要求,制作Excel文档,形成报表模板;(2)使用Qt开发环境将步骤(1)形成的Excel文档加入到Qt工程的资源文件当中;(3)当步骤(2)加入资源文件的Qt工程需要生成报表格式的Excel文档时,释放资源文件到指定的工作目录;(4)使用QAxObject对步骤(3)释放的资源文件进行单元格的填写操作;(5)保存步骤(4)填写操作后的Excel文档,释放资源。

【技术特征摘要】
1.一种基于Qt资源文件的Excel文档生成方法,其特征在于步骤如下:(1)首先根据实际的报表格式要求,制作Excel文档,形成报表模板;(2)使用Qt开发环境将步骤(1)形成的Excel文档加入到Qt工程的资源文件当中;(3)当步骤(2)加入资源文件的Qt工程需要生成报表格式的Excel文档时,释放资源文件到指定的工作目录;(4)使用QAxObject对步骤(3)释放的资源文件进行单元格的填写操作;(5)保存步骤(4)填写操作后的Excel文档,释放资源。2.根据权利要求1所述的一种基于Qt资源文件的Excel文档生成方法,其特征在于:报表要求,包括:单元格合并设置,行高、列宽设置、字体格式设置,对齐设置,背景色设置,报表中单元格的有效位数的设置,边框的设置,特殊字符的输入。3.根据权利要求1所述的一种基于Qt资源文件的Excel文档生成方法,其特征在于:制作的Excel文档,按照报表要求设置了个单元格的格式,不填充具体内容。4.根据权利要求1所述的一种基于Qt资源文件的Excel文档生成方法,其特征在于:Qt工程,包括资源文件、编译文件即pro文件、应用文件,应用文件包括:头文件,源文件,界面文件。5.根据权利要求1所述的一种基于Qt资源文件的Excel文档生成方法,其特征在于:QAxObject是一个包装了COM对象的QObject子类。6.根据权利要求1所述的一种基于Qt资源文件的Excel文档...

【专利技术属性】
技术研发人员:宋腾腾孙洪亮李天军薛靖邦
申请(专利权)人:北京航天时代激光导航技术有限责任公司
类型:发明
国别省市:北京,11

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

1