数据申报系统中报表和xml文件数据交互的方法及其装置制造方法
【专利摘要】本发明公开一种数据申报系统中报表和XML文件数据交互的方法及其装置,将报表分解为多个子表,为每个子表命名,将报表的设定单元格设置为固定的配置区域,用以记录多个子表的名称和类型,每个子表为非明细表、固定行明细表和非固定行明细表中的任一种;定义报表中每个单元格的变量名,变量名包括该单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度、该单元格的唯一识别ID;在XML文件与报表之间建立对应关系,对应关系包括:将XML文件的根节点与报表对应,将根节点下的一级子节点与报表的子表一一对应,将每个一级子节点下的子节点和与其对应子表下的各变量名一一对应;根据对应关系,在XML文件与报表之间进行数据交互。
【专利说明】数据申报系统中报表和XML文件数据交互的方法及其装置
【技术领域】
[0001]本发明涉及数据处理领域,具体而言,涉及一种数据申报系统中报表和XML文件数据交互的方法及其装置。
【背景技术】
[0002]在现有的纳税申报系统中,可扩展标记语言(Extensible Markup Language, XML)作为前后台数据传输的方式已经成为了主流,而前台界面上的报表是纳税人最终进行数据录入的窗口。
[0003]因此在XML文件和报表之间必然有些数据上的交互。若报表完全用HTML(Hypertext Markup Language,超文本标记语言)脚本来开发,这无疑会给程序员带来巨大的工作量,使用第三方插件是比较主流的方法,但由于各种插件都具有不同程度的缺陷,在数据交互过程中经常出现程序崩溃的情况,造成工作中断。
【发明内容】
[0004]本发明提供一种数据申报系统中报表和XML文件数据交互的方法及其装置,用以实现XML文件和报表之间数据的快速交互,以便于报表数据初始化时将XML文件上的数据自动录入到报表的相关栏次,以及报表申报提交时将报表上的数据生成XML文件。
[0005]为达到上述目的,本发明提供了一种数据申报系统中报表和XML文件数据交互的方法,包括以下步骤:
[0006]将报表分解为多个子表,并为每个子表命名,以及将报表的设定单元格设置为固定的配置区域,用以记录多个子表的名称和类型,其中每个子表为非明细表、固定行明细表和非固定行明细表中的任一种;
[0007]定义报表中每个单元格的变量名,变量名包括该单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度、该单元格的唯一识别ID(Identity,身份标识号码);
[0008]在XML文件与报表之间建立对应关系,对应关系包括:将XML文件的根节点与报表对应,将根节点下的一级子节点与报表的子表--对应,将每个一级子节点下的子节点和与其对应子表下的各变量名一一对应;
[0009]根据对应关系,在XML文件与报表之间进行数据交互。
[0010]可选的,根据对应关系,在XML文件与报表之间进行数据交互步骤包括:
[0011]根据报表数据生成XML文件时,解析报表,获取设定单元格中记录的多个子表的名称和类型,根据多个子表的名称和类型确定XML文件的根节点下的一级子节点,以及根据每个子表的各变量名确定其对应一级子节点下的子节点;
[0012]按照每个子表的名称逐一读取报表上的数据,根据每个子表的名称和单元格的变量名,逐一读取对应单元格的数据,并将该单元格的数据导入XML文件的对应节点。
[0013]可选的,根据对应关系,在XML文件与报表之间进行数据交互步骤包括:
[0014]将X见文件的数据填入报表时,按照对应关系,根据X见文件的根节点的名称及其下的一级节点的名称确定报表的名称及其子表的名称,并根据每个一级子节点下的子节点的名称确定对应子表下的各变量名;
[0015]根据确定的每个子表的名称及其各单元格的变量名,将XII文件的根节点下对应一级子节点的所有子节点的数据依次填入该子表的对应单元格。
[0016]可选的,报表为2x061表。
[0017]可选的,设定单元格为所述报表中位于第一行第一列的单元格。
[0018]为达到上述目的,本发明还提供了一种数据申报系统中报表和)011文件数据交互的装置,包括:
[0019]报表分解模块,用于将报表分解为多个子表,并为每个子表命名,以及将报表的设定单元格设置为固定的配置区域,用以记录多个子表的名称和类型,其中每个子表为非明细表、固定行明细表和非固定行明细表中的任一种;
[0020]变量名定义模块,用于定义报表中每个单元格的变量名,变量名包括该单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度、该单元格的唯一识别10 ;
[0021]关系对应模块,用于在可扩展标记语言)(肌^文件与报表之间建立对应关系,对应关系包括:将XII文件的根节点与报表对应,将根节点下的一级子节点与报表的子表对应,将每个一级子节点下的子节点和与其对应子表下的各变量名一一对应;
[0022]数据交互模块,用于根据对应关系,在X祖^文件与报表之间进行数据交互。
[0023]可选的,数据交互模块包括:
[0024]XII结构确定单元,用于在根据报表数据生成X见文件时,解析报表,获取设定单元格中记录的多个子表的名称和类型,根据多个子表的名称和类型确定XII文件的根节点下的一级子节点,以及根据每个子表的各变量名确定其对应一级子节点下的子节点;
[0025]第一数据导入单元,用于按照每个子表的名称逐一读取报表上的数据,根据每个子表的名称和单元格的变量名,逐一读取对应单元格的数据,并将该单元格的数据导入XII文件的对应节点。
[0026]可选的,数据交互模块包括:
[0027]报表结构确定单元,用于在将XII文件的数据填入报表时,按照对应关系,根据XII文件的根节点的名称及其下的一级节点的名称确定报表的名称及其子表的名称,并根据每个一级子节点下的子节点的名称确定对应子表下的各变量名;
[0028]第二数据导入单元,用于根据确定的每个子表的名称及其各单元格的变量名,将XII文件的根节点下对应一级子节点的所有子节点的数据依次填入该子表的对应单元格。
[0029]可选的,报表为2x061表。
[0030]可选的,设定单元格为报表中位于第一行第一列的单元格。
[0031]上述实施例中,在报表申报提交时,将报表各子表的单兀格的数据依次填入XII文件根节点下的一级子节点的所有子节点;在XII数据填入报表单元格时,XII文件根节点下的一级子节点名称为报表某个子表的名称,这样--对应,一级子节点下的子节点对应此子表下面的各单元格的变量名,进而将子节点的值填入到变量名为子节点名的单元格中,从而实现了 XII文件和报表之间数据的快速交互,减轻了工作人员的工作负担,提高工作效率。
【专利附图】
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为根据本发明一实施例的数据申报系统中报表和XII文件数据交互的方法流程图;
[0034]图2为根据本发明一实施例的数据申报系统中报表和)011文件数据交互的装置示意图。
【具体实施方式】
[0035]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]图1为根据本发明一实施例的数据申报系统中报表和XII文件数据交互的方法流程图;如图所示,该方法包括以下步骤:
[0037]3102,将报表分解为多个子表,并为每个子表命名,以及将报表的设定单兀格设置为固定的配置区域,用以记录多个子表的名称和类型,其中每个子表为非明细表、固定行明细表和非固定行明细表中的任一种;
[0038]其中,上述报表可以是常用的2x^1表。在将报表分解为多个子表时,可以通过报表中的文本提取函数来实现。无论报表的样式结构多么复杂,在纳税申报系统里面,数据报表总能分解为非明细表、固定行明细表或者非固定行明细表,这三类报表中的一种或者多种共同组成了一张完整的报表。本步骤中将一张完整的报表分解为几个子表,每个子表都属于这三类报表中的一种。
[0039]只要读取固定的配置区域的内容便可知道本报表被分解为了几个子表,每个子表分别是何种类型,这里的类型是指非明细表、固定行明细表和非固定行明细表。其中,这里的设定单元格可以是报表中位于第一行第一列的单元格,方便用户快速定位到固定的配置区域并查看其中的内容。
[0040]假定报表第一行的行号为1,第一列的列号为八,则可以将报表的第一行第一列单元格八1设置为固定的配置区域,用以记录报表分解的所有子表的信息。
[0041]在对分解的子表进行命名时,命名规则可以是子表的简称+表种类代码+:+表名称,简称可以为一个字符,例如可选取八-2或1-9 ;例如,非明细表的类型代码为0,固定行明细表的类型代码为1,非固定行明细表的类型代码为2或者3 (2和3的区别可以限定为打印时处理分页方式不同依据上述命名规则,对每个子表定义一个名称,子表与子表之间用“ ~ ”号连接,例如八0:册八0~83:~02:表示此张报表被分解为了一个非明细表表八,名称为册八0,一个非固定行明细表8,名称为?0^01,还有一个非固定行明细表0,名称为
[0042]3104,定义报表中每个单元格的变量名,变量名包括该单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度、该单元格的唯一识别10 ;
[0043]在给单元格设置变量名时,可以通过自动获取该单元格所在的子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度,以及该单元格的唯一识别10(行号为1,列号为八的10为八1)等信息;可以通过交互界面工具接收用户输入此单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度,该单元格的唯一识别10等信息,进而根据所获取或所输入的信息设置单元格的变量名。例如变量名为81^13021.22^表示81表中变量名为22邛的变量,变量是数值型,最大支持13位整数,2位小数,变量可以为空;变量名八0000001333聊表示八0表中变量名为333聊的变量,变量是日期型,变量不能为空。
[0044]3106,在X祖^文件与报表之间建立对应关系,对应关系包括:将X祖^文件的根节点与报表对应,将根节点下的一级子节点与报表的子表--对应,将每个一级子节点下的子节点和与其对应子表下的各变量名一一对应;
[0045]3108,根据对应关系,在X见文件与报表之间进行数据交互。
[0046]其中,XIII文件与报表之间的数据交互包括根据报表数据生成XIII文件以及将X见文件的数据填入报表。
[0047]在根据报表数据生成X文件时,解析报表,获取设定单元格中记录的多个子表的名称和类型,根据多个子表的名称和类型确定XII文件的根节点下的一级子节点,以及根据每个子表的各变量名确定其对应一级子节点下的子节点;按照每个子表的名称逐一读取报表上的数据,根据每个子表的名称和单元格的变量名,逐一读取对应单元格的数据,并将该单元格的数据导入XII文件的对应节点。
[0048]在将XII文件的数据填入报表时,按照对应关系,根据XII文件的根节点的名称及其下的一级节点的名称确定报表的名称及其子表的名称,并根据每个一级子节点下的子节点的名称确定对应子表下的各变量名;根据确定的每个子表的名称及其各单元格的变量名,将XII文件的根节点下对应一级子节点的所有子节点的数据依次填入该子表的对应单元格。
[0049]上述实施例中,在报表申报提交时,将报表各子表的单兀格的数据依次填入XII文件根节点下的一级子节点的所有子节点;在XII数据填入报表单元格时,XII文件根节点下的一级子节点名称为报表某个子表的名称,这样--对应,一级子节点下的子节点对应此子表下面的各单元格的变量名,进而将子节点的值填入到变量名为子节点名的单元格中,从而实现了 XII文件和报表之间数据的快速交互,减轻了工作人员的工作负担,提高工作效率。
[0050]与上述方法实施例相适应,图2示出了本发明一实施例的数据申报系统中报表和X肌^文件数据交互的装置示意图。如图所示,该装置包括:
[0051]报表分解模块10,用于将报表分解为多个子表,并为每个子表命名,以及将报表的设定单元格设置为固定的配置区域,用以记录多个子表的名称和类型,其中每个子表为非明细表、固定行明细表和非固定行明细表中的任一种;
[0052]变量名定义模块20,用于定义报表中每个单元格的变量名,变量名包括该单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度、该单元格的唯一识别10 ;
[0053]关系对应模块30,用于在可扩展标记语言X祖^文件与报表之间建立对应关系,对应关系包括:将XII文件的根节点与报表对应,将根节点下的一级子节点与报表的子表一一对应,将每个一级子节点下的子节点和与其对应子表下的各变量名一一对应;
[0054]数据交互模块40,用于根据对应关系,在X祖^文件与报表之间进行数据交互。
[0055]可选的,数据交互模块包括:
[0056]XII结构确定单元,用于在根据报表数据生成X见文件时,解析报表,获取设定单元格中记录的多个子表的名称和类型,根据多个子表的名称和类型确定XII文件的根节点下的一级子节点,以及根据每个子表的各变量名确定其对应一级子节点下的子节点;
[0057]第一数据导入单元,用于按照每个子表的名称逐一读取报表上的数据,根据每个子表的名称和单元格的变量名,逐一读取对应单元格的数据,并将该单元格的数据导入XII文件的对应节点。
[0058]可选的,数据交互模块包括:
[0059]报表结构确定单元,用于在将XII文件的数据填入报表时,按照对应关系,根据XII文件的根节点的名称及其下的一级节点的名称确定报表的名称及其子表的名称,并根据每个一级子节点下的子节点的名称确定对应子表下的各变量名;
[0060]第二数据导入单元,用于根据确定的每个子表的名称及其各单元格的变量名,将XII文件的根节点下对应一级子节点的所有子节点的数据依次填入该子表的对应单元格。
[0061]可选的,报表为2x061表。
[0062]可选的,设定单元格为报表中位于第一行第一列的单元格。
[0063]需要指出的是,对于上述装置实施例而言,由于其与上述方法实施例基本相似,所以描述的相对简单,相关之处参见上述方法实施例部分的说明即可。
[0064]本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0065]本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0066]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:001、狀1、磁碟或者光盘等各种可以存储程序代码的介质。
[0067]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
【权利要求】
1.一种数据申报系统中报表和XML文件数据交互的方法,其特征在于,包括以下步骤: 将报表分解为多个子表,并为每个所述子表命名,以及将所述报表的设定单元格设置为固定的配置区域,用以记录多个所述子表的名称和类型,其中每个所述子表为非明细表、固定行明细表和非固定行明细表中的任一种; 定义所述报表中每个单元格的变量名,所述变量名包括该单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度、该单元格的唯一识别ID ; 在可扩展标记语言XML文件与所述报表之间建立对应关系,所述对应关系包括:将所述XML文件的根节点与所述报表对应,将所述根节点下的一级子节点与所述报表的子表一一对应,将每个所述一级子节点下的子节点和与其对应子表下的各变量名一一对应;根据所述对应关系,在所述XML文件与所述报表之间进行数据交互。
2.根据权利要求1所述的数据申报系统中报表和XML文件数据交互的方法,其特征在于,所述根据所述对应关系,在所述XML文件与所述报表之间进行数据交互步骤包括: 根据所述报表数据生成XML文件时,解析所述报表,获取所述设定单元格中记录的多个所述子表的名称和类型,根据多个所述子表的名称和类型确定所述XML文件的根节点下的一级子节点,以及根据每个所述子表的各变量名确定其对应一级子节点下的子节点;按照每个所述子表的名称逐一读取所述报表上的数据,根据每个所述子表的名称和单元格的变量名,逐一读取对应单元格的数据,并将该单元格的数据导入所述XML文件的对应节点。
3.根据权利要求1所述的数据申报系统中报表和XML文件数据交互的方法,其特征在于,所述根据所述对应关系,在所述XML文件与所述报表之间进行数据交互步骤包括: 将所述XML文件的数据填入报表时,按照所述对应关系,根据所述XML文件的根节点的名称及其下的一级节点的名称确定报表的名称及其子表的名称,并根据每个所述一级子节点下的子节点的名称确定对应子表下的各变量名; 根据所述确定的每个子表的名称及其各单元格的变量名,将所述XML文件的根节点下对应一级子节点的所有子节点的数据依次填入该子表的对应单元格。
4.根据权利要求1-3任一项所述的数据申报系统中报表和XML文件数据交互的方法,其特征在于,所述报表为Excel表。
5.根据权利要求1-3任一项所述的数据申报系统中报表和XML文件数据交互的方法,其特征在于,所述设定单元格为所述报表中位于第一行第一列的单元格。
6.一种数据申报系统中报表和XML文件数据交互的装置,其特征在于,包括: 报表分解模块,用于将报表分解为多个子表,并为每个所述子表命名,以及将所述报表的设定单元格设置为固定的配置区域,用以记录多个所述子表的名称和类型,其中每个所述子表为非明细表、固定行明细表和非固定行明细表中的任一种; 变量名定义模块,用于定义所述报表中每个单元格的变量名,所述变量名包括该单元格所在子表的名称,该单元格的数据类型,该单元格所允许的最小和最大数据长度、该单元格的唯一识别ID ; 关系对应模块,用于在可扩展标记语言XML文件与所述报表之间建立对应关系,所述对应关系包括:将所述XML文件的根节点与所述报表对应,将所述根节点下的一级子节点与所述报表的子表一一对应,将每个所述一级子节点下的子节点和与其对应子表下的各变量名一一对应; 数据交互模块,用于根据所述对应关系,在所述XML文件与所述报表之间进行数据交互。
7.根据权利要求6所述的数据申报系统中报表和XML文件数据交互的装置,其特征在于,所述数据交互模块包括: XML结构确定单元,用于在根据所述报表数据生成XML文件时,解析所述报表,获取所述设定单元格中记录的多个所述子表的名称和类型,根据多个所述子表的名称和类型确定所述XML文件的根节点下的一级子节点,以及根据每个所述子表的各变量名确定其对应一级子节点下的子节点; 第一数据导入单元,用于按照每个所述子表的名称逐一读取所述报表上的数据,根据每个所述子表的名称和单元格的变量名,逐一读取对应单元格的数据,并将该单元格的数据导入所述XML文件的对应节点。
8.根据权利要求6所述的数据申报系统中报表和XML文件数据交互的装置,其特征在于,所述数据交互模块包括: 报表结构确定单元,用于在将所述XML文件的数据填入报表时,按照所述对应关系,根据所述XML文件的根节点的名称及其下的一级节点的名称确定报表的名称及其子表的名称,并根据每个所述一级子节点下的子节点的名称确定对应子表下的各变量名; 第二数据导入单元,用于根据所述确定的每个子表的名称及其各单元格的变量名,将所述XML文件的根节点下对应一级子节点的所有子节点的数据依次填入该子表的对应单元格。
9.根据权利要求6-8任一项所述的数据申报系统中报表和XML文件数据交互的装置,其特征在于,所述报表为Excel表。
10.根据权利要求6-8任一项所述的数据申报系统中报表和XML文件数据交互的装置,其特征在于,所述设定单元格为所述报表中位于第一行第一列的单元格。
【文档编号】G06F17/30GK104346407SQ201310344360
【公开日】2015年2月11日 申请日期:2013年8月8日 优先权日:2013年8月8日
【发明者】陈博, 宋颖, 蔡姝婧, 陈谦昱, 李鹏鹏, 耿立家 申请人:航天信息股份有限公司