一种变动列数据导出为Excel格式的方法技术

技术编号:15639262 阅读:238 留言:0更新日期:2017-06-15 22:25
本发明专利技术公开了一种变动列数据导出为Excel格式的方法,其实现过程为:首先识别查询数据的列属性,即其变动规则,分类设置列和数据库列的对应规则和数据转换规则,根据这些规则把查询结果转化为标题对象和数据对象;根据数据对象的结构,把查询数据整理到数据对象中;根据标题对象生成Excel标题格式,多级表头的标题进行单元格合并,根据数据对象内容填充数据行。本发明专利技术的一种变动列数据导出为Excel格式的方法与现有技术相比,解决将变动列数据导出为Excel格式的问题,实现变动列数据导出为Excel格式,方便这些数据在信息系统外进行传递、分析、使用,实用性强。

【技术实现步骤摘要】
一种变动列数据导出为Excel格式的方法
本专利技术涉及计算机应用
,具体地说是一种变动列数据导出为Excel格式的方法。
技术介绍
随着信息化系统的发展与普及,数据呈现越来越多样化,终端用户不再满足于系统是否可用,迫切需要把信息系统中的数据导出到Excel中,方便数据的传递及再次整理和使用。目前,很多软件实现了数据导出,但是针对多级表头变动列的数据导出成excel格式出现了各种各样的问题,有的增加了很多格式和合并行,导致导出内容很复杂,客户几乎无法再次编辑;有的出现了信息缺失等等情况。本专利技术提供了一种变动列数据导出为Excel格式的方法,旨在帮助解决将变动列数据导出为Excel格式的问题。
技术实现思路
本专利技术的技术任务是针对以上不足之处,提供一种变动列数据导出为Excel格式的方法。一种变动列数据导出为Excel格式的方法,其实现过程为:首先识别查询数据的列属性,即其变动规则,分类设置列和数据库列的对应规则和数据转换规则,根据这些规则把查询结果转化为标题对象和数据对象;然后,根据数据对象的结构,把查询数据整理到数据对象中;最后,根据标题对象生成Excel标题格式,多级表头的标题进行单元格合并,根据数据对象内容填充数据行。所述识别的查询数据的列属性包括变动数据列、变动数据列前的固定数据列、变动数据列后的固定列,即变动列、变动列前固定列和变动列后固定列,其中,变动列前的固定数据列,列的位置固定,可以设置列序号或列标题直接对应Excel的列;非变动列的数据导入时仅设置固定列的列属性;变动数据列,根据数据内容而多列显示,标题可以是多级表头的;变动列后的固定列,因变动列的增减而变化列的位置,设置标题的内容对应Excel的列。所述列属性中,变动列前固定列在数据变动时其列序号或列标题保持不变,该固定列的每行数据在Excel中存储的是一行数据;变动列是一个或多个列的组合,当每增加一次变动时这个组合的所有列均出现,一组变动列的一行数据对应着固定列的一行数据,一行固定列的数据对应着变动列的数据是多行的,固定列数据和变动列数据是多对一的关系,并用固定列的子表保存,这里的固定列是指变动列前固定列;变动列后的固定列在数据变动时,列序号发生改变,列标题保持不变,且每一行数据和变动列前固定列的每一行数据是一一对应的。所述变动列、变动列前固定列和变动列后固定列的数据结构,导出数据的标题按其特征整理成导出格式:因导出标题支持多级表头,故标题导出格式整理成树形结构,当没有多级表头时,所有的表头都是树的第一级;变动列前固定列,按树级结构整理,明细的固定标题指明数据导出的列和所在Excel文件中占用的列;变动列,按树级结构整理,明细的变动标题指明数据导出的列和所在Excel文件中占用的列;变动列后的固定列,按树级结构整理,明细的标题指明数据导出的列和所在Excel文件中占用的列。所述变动列、变动列前固定列和变动列后固定列的数据结构,导出的数据按其特征整理成导出格式:首先根据明细的标题指明的列创建导出的数据结构;根据创建的数据结构,把导出数据整理到数据行中。所述标题对象是存储查询结果后整理好的标题属性的集合,属性包括:标题名称、对应存储字段、分级结构;数据对象是存储按变动列要求整理后的查询结果的行数据,每一行数据均按明细标题的先后顺序创建。查询结果转化为标题对象和数据对象的过程具体为:首先,取出查询结果,根据查询结果,获取变动列标题字段对应的不重复的值备用;取出列属性设置信息,取下一个列属性设置;判断是否是变动列前固定列;如果判断是变动列前固定列,则设置标题对象,标题名同列属性标题名,标题对象的其他属性也取自列属性,然后判断是否为明细列,如果判断是,数据对象增加明细列对象,字段名称为列属性中值字段;如果判断为否,则判断是否有下一列;如果判断不是变动列前固定列,进行是否变动列后固定列的判断,如果判断为是,设置标题对象,标题名同列属性标题名,标题对象的其他属性也取自列属性,然后继续是否明细列的判断;如果判断为否,则当前列对象为变动列,对上述步骤中获取的不重复的值进行处理;首先,按顺序取当前标题列对应的一个不重复的值,设置标题对象,标题名称为取到的不重复值;然后,判断当前列对象是否为明细列对象,如果判断为是,数据对象增加该列;如果判断为否,则进行是否有下一条不重复的值的判断,如果判断为是,则进行取当前变动列下一个不重复的值,重新进行获取变动列标题字段不重复的值的操作,如果判断为否,判断是否有下一列;如果判断有下一列,则取下一个列属性设置,如果判断不存在下一列,则说明所有列属性处理完毕,结束标题对象及数据对象整理工作。把查询数据整理到数据对象中的过程为:首先,获取固定列字段不重复的值;然后,取整理后的一条数据,这条数据是数据对象新的一行数据,数据对象新增一行并对数据对象中对应固定列的列赋当前行的值;然后,取一个变动列的明细标题对象,对这个明细对象的值进行赋值,赋值的依据是要根据所有固定列的值和明细标题的值查找明细标题字段对应的值;然后,进行是否有下一个明细标题对象判断,如果判断为是,则取下一个值,重新进行取下一个变动列明细标题对象的步骤及其后继操作步骤,如果判断为否,则进行是否有下一列的判断;如果判断为是,则取下一个值,重新进行取下一个固定列不重复值及其后继操作的步骤;如果判断为否,结束数据整理工作。所述数据导出,根据标题对象生成Excel标题格式文件的过程为,首先整理的多级表头信息,把标题导出到Excel标题行中,并记录占用的行数;在标题占用行数的下一行,根据按其特征整理成导出格式的多级表头明细标题数据导出的列和所在Excel文件中占用的列信息,把按其特征整理成导出格式的数据填入对应Excel的数据行中。根据标题对象生成Excel标题格式的具体过程为:首先,进行导出前数据准备工作,获取标题对象的最大级数和最大明细列数,设置开始行为1、开始列为1;从标题对象中,取下一个标题对象,进行是否明细标题判断;如果判断为是,设置当前标题占用列数1占用行数1,通过开始行和开始列属性查找到标题格,给标题格赋值;明细标题格赋值完成后,要给后继的标题格赋值,开始行的值要加1;然后,进行是否有下一个标题对象判断;如果判断为否,获取当前标题的明细标题的个数、下级层数和上级层数,这些属性用来控制合并单元格,设置标题占用列数为明细标题的个数;然后,判断当前标题是否是第一级;如果判断为是,设置开始列为1,设置标题占用行数:最大级数-下级层数,根据占用行数占用列数合并单元格;如果判断为否,设置开始列为最大级数-上级层数+1,根据占用行数占用列数合并单元格;合并单元格后,给合并后的单元格赋当前标题对象的标题值;然后,进行是否有下一个标题对象判断;如果判断为是,继续进行取下一个标题对象及其后继操作;如果判断为否,结束给标题格赋值操作进行数据行填充操作;取下一行数据对象,以最大级数行+1行开始填充数据,填充的顺序和创建的顺序一致即可;行数据填充完毕后,重置最大级数值为最大级数+1;判断是否有下一行数据对象,如果判断为是,继续执行取下一行数据对象及其后继操作的步骤,继续填充行数据;如果判断为否,结束数据填充工作。本专利技术的一种变动列数据导出为Excel格式的方法和现有技术相本文档来自技高网...
一种变动列数据导出为Excel格式的方法

【技术保护点】
一种变动列数据导出为Excel格式的方法,其特征在于,其实现过程为:首先识别查询数据的列属性,即其变动规则,分类设置列和数据库列的对应规则和数据转换规则,根据这些规则把查询结果转化为标题对象和数据对象;然后,根据数据对象的结构,把查询数据整理到数据对象中;最后,根据标题对象生成Excel标题格式,多级表头的标题进行单元格合并,根据数据对象内容填充数据行。

【技术特征摘要】
1.一种变动列数据导出为Excel格式的方法,其特征在于,其实现过程为:首先识别查询数据的列属性,即其变动规则,分类设置列和数据库列的对应规则和数据转换规则,根据这些规则把查询结果转化为标题对象和数据对象;然后,根据数据对象的结构,把查询数据整理到数据对象中;最后,根据标题对象生成Excel标题格式,多级表头的标题进行单元格合并,根据数据对象内容填充数据行。2.根据权利要求1所述的一种变动列数据导出为Excel格式的方法,其特征在于,所述识别的查询数据的列属性包括变动数据列、变动数据列前的固定数据列、变动数据列后的固定列,即变动列、变动列前固定列和变动列后固定列,其中,变动列前的固定数据列,列的位置固定,可以设置列序号或列标题直接对应Excel的列;非变动列的数据导入时仅设置固定列的列属性;变动数据列,根据数据内容而多列显示,标题可以是多级表头的;变动列后的固定列,因变动列的增减而变化列的位置,设置标题的内容对应Excel的列。3.根据权利要求2所述的一种变动列数据导出为Excel格式的方法,其特征在于,所述列属性中,变动列前固定列在数据变动时其列序号或列标题保持不变,该固定列的每行数据在Excel中存储的是一行数据;变动列是一个或多个列的组合,当每增加一次变动时这个组合的所有列均出现,一组变动列的一行数据对应着固定列的一行数据,一行固定列的数据对应着变动列的数据是多行的,固定列数据和变动列数据是多对一的关系,并用固定列的子表保存,这里的固定列是指变动列前固定列;变动列后的固定列在数据变动时,列序号发生改变,列标题保持不变,且每一行数据和变动列前固定列的每一行数据是一一对应的。4.根据权利要求2所述的一种变动列数据导出为Excel格式的方法,其特征在于,所述变动列、变动列前固定列和变动列后固定列的数据结构,导出数据的标题按其特征整理成导出格式:因导出标题支持多级表头,故标题导出格式整理成树形结构,当没有多级表头时,所有的表头都是树的第一级;变动列前固定列,按树级结构整理,明细的固定标题指明数据导出的列和所在Excel文件中占用的列;变动列,按树级结构整理,明细的变动标题指明数据导出的列和所在Excel文件中占用的列;变动列后的固定列,按树级结构整理,明细的标题指明数据导出的列和所在Excel文件中占用的列。5.根据权利要求4所述的一种变动列数据导出为Excel格式的方法,其特征在于,所述变动列、变动列前固定列和变动列后固定列的数据结构,导出的数据按其特征整理成导出格式:首先根据明细的标题指明的列创建导出的数据结构;根据创建的数据结构,把导出数据整理到数据行中。6.根据权利要求5所述的一种变动列数据导出为Excel格式的方法,其特征在于,所述标题对象是存储查询结果后整理好的标题属性的集合,属性包括:标题名称、对应存储字段、分级结构;数据对象是存储按变动列要求整理后的查询结果的行数据,每一行数据均按明细标题的先后顺序创建。7.根据权利要求2-6任一所述的一种变动列数据导出为Excel格式的方法,其特征在于,查询结果转化为标题对象和数据对象的过程具体为:首先,取出查询结果,根据查询结果,获取变动列标题字段对应的不重复的值备用;取出列属性设置信息,取下一个列属性设置;判断是否是变动列前固定列;如果判断是变动列前固定列,则设置标题对象,标题名同列属性标题名,标题对象的其他属性也取自列属性,然后判断是否为明细列,如果判断是,数据对象增加明细列对象,字段名称为列属性中值字段;如果判断为否,则判断是否有下一列;如果判断不是变动列前固定列,进行是否变动列后固...

【专利技术属性】
技术研发人员:李洪营薛军利聂明李焕伟李伟杨帅邵长恩胡灵祎薛鹏陶述斌
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:山东,37

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

1