1.功能描述 ............................................................................................................................................................... 2
1.1.Excel数据源图例 ...................................................................................................................................... 2 1.2.配置模板图例 ............................................................................................................................................ 3 1.3.操作界面图例 ............................................................................................................................................ 3 2.约定和声明 .......................................................................................................................................................... 4
2.2数据库配置约定和声明 ............................................................................................................................ 4 2.2物理数据源约定和声明 ............................................................................................................................ 4 2.3配置模板约定和声明 ................................................................................................................................ 5 3.解析器工作原理 ................................................................................................................................................... 5
3.1第一步骤 .................................................................................................................................................... 6 3.2第二步骤 .................................................................................................................................................... 6 3.3第三步骤 .................................................................................................................................................... 6 3.4第四步骤 .................................................................................................................................................... 6 4.模板定义步骤 ....................................................................................................................................................... 6
4.1第一步骤 .................................................................................................................................................... 7
5错误描述和诊断 ................................................................................................................................................. 11 1错误信息 ..................................................................................................................................................... 11 6附录 ..................................................................................................................................................................... 11 1.功能描述 实现将任意格式的Excel表中的数据(支持多Sheet、支持每一个Sheet中又有多个逻辑数据区),通过描述取数配置模板后,由自动解析器将从指定的Excel数据源中抽取任意数据导入到 任意目标数据库表中。同时可附带产生XML格式的目标数据。 1.1.Excel数据源图例 1.2.配置模板图例 1.3.操作界面图例 (以民生保监会报表系统为例) 2.约定和声明 2.2数据库配置约定和声明 以民生保监会报表系统为例(即上图操作界面):需要将模板配置文件名存放到 数据库表LDCode 中CodeType 值为'circreport_config'的相应记录的CodeAdias字段值。所以每填加一个配置模板需要到该表中添加一条相应的配置文件名描述记录(目的是通过界面引用模板的逻辑功能名而不是模板文件名,从用户操作的友好性上考虑),同时将配置模板放到数据库表LDSysVar 中字段SysVar 值为'TranDataPath' 的相应记录的SysVarValue字段值所描述的路径下,以便解析器在解析时读取。 2.2物理数据源约定和声明 (1) 物理数据源Excel表本身数据无任何特殊位置要求。可以有任意多Sheet。对Sheet名 无任何要求。 2.3配置模板约定和声明 (2) 在配置模板中,通过引用顺序号(0、1、2、3、等)来引用每个Sheet(如:0代表第一个 Sheet,以此类推)。 (3) 在配置模板中,通过引用顺序号(0、1、2、3、等)来引用Sheet的每行、每列(如:Sheet(0,0,0) 代表是引用第一Sheet中第一行中的第一列,以此类推)。 (4) 配置模板中各元素名大小写不敏感,但其属性名要求必须小写,否则解析器会认为其 为非法属性。各元素均可拥有desc属性,其只作为备注,以便描述者记录提示性信息所用,不参与解析器解析工作。 (5) 配置模板中唯一根元素为 子元素(但至少有一个 (7) 在配置模板中,每一个 拥有多个 (8) 在配置模板中,每一个< Part >元素必须只包含< DataSourceSet >元素和< DataDestinationSet >元素共两个元素。第一个子元素< DataSourceSet >逻辑上用来进行参数描述和列取数定义。第二个子元素< DataDestinationSet >逻辑上用来进行行取数定义。 (9) 在配置模板中,每一个< DataSourceSet >元素必须只包含 元素共两个子元素。元素< DataSourceSet >的属性name和属性display可以为空。第一个子元素 3.解析器工作原理 .解析器工作每一个 校验部分;第二部分:遍历由起始行和终止行指定的物理行,同时根据列定义描述生成中间行结果。第三部分:根据目标行定义生成目标行数据。第四部分:将目标行数据存储到目标数据库表中。每一部分都是下一工作部分的前驱必备工作。 3.1第一步骤 实现模板语法校验功能。辅助模板描述的工作者快速定位模板描述的错误,提高工作效率。保证模板描述的语法的正确性,简化后续工作的校验工作,使每一部分的功能在逻辑上尽可能的独立出来,只专注于本部分的核心工作。 3.2第二步骤 在模板校验成功后,实现遍历由起始行和终止行指定的物理行,根据列定义描述生成中间行结果的工作任务。实现列扩充的目的。输出中间结果集合(可生成Xml格式的中间结果集合)。 3.3第三步骤 输入中间结果集合,根据行定义从中直接抽取出目标行,或只抽取部分同时再生成一些自定义的行,最终将两部分同一输出为目标行结果集合(可生成Xml格式的目标结果集合)。 3.4第四步骤 输入目标结果集合,将目标结果逐一提交到根据指定的物理数据库表中。最终实现从物理Excel表中,生成自定义格式的数据记录存储到目标数据库表中的工作。 4.模板定义步骤 如约定和声明所述,一个配置模板中可以有多 4.1第一步骤 (1) 在配置模板中, (2) (3) (4) 包括公共系统参数,目前只提供SYS_FILENAMEPARAM公共系统参数即物理源Excel文件名称的引用,如果具体运用中有其它系统级参数需求可具体提出,以便实现支持),其即该参数名。属 性type值不在容许为空,并且取值范围是(0,1,2,3)。每一type取值对应属性src值的计算得出参数值关系表示为下表: type 0 1 如:src=”123” src 如:src=”Sheet(0,0,2)” 参数值 参数值为属性src直接定义的值如:123 参数值为属性src直接指定的物理Excel数据源中第一Sheet中第一行第三列中的值 src为一自然Sql则参数值为该语句执行结果值 src 为一变形Sql 其中引用了前驱已定义参数,解析器会在执行该语句之前将用参数值替换调(?某一已定义参数名?),然后执行语句将结果赋予该参数 src 为一变形Sql 其中引用了物理Excel某单元格,则解析器会在执行该语句之前将用指定的单元格值替换调(?Sheet(0,0,1)?),然后执行语句将结果赋予该参数,但该参数定义是必须要有params属性声明该物理单元格的引用见右。(Sheet(-1,rowindex,colindex)中-1表示当前Sheet,但rowindex和colindex2 如:1.src=”select colname from onetable ” 1. 2. src=”select 某列名 from 某一表名 where 某一列=‘?某一已定义参数名包2. 括系统参数?’” 3. src=”select 某列名 from 某一表名 where 某一列=‘?Sheet(0,0,1)?’” (要求必须在参数定义中有params属性,3. 书写为params=”params(Sheet(0,0,1) |1)” 4. src=”select 某列名 from 某一表名 where 某一列=‘?Sheet(0,0,1)?’ and某一列=‘?某一已定义的参数包括系统参数?’ ” 不能取-1,因为在参数定义时没有当前行和列的概念可言) 4. 支持多参数引用。如果引用了物理单元格值就必须进行书写params 属性。其它类型参数可不进行声明。 3 如:src=”Param0” 5. Src 值为一已定义的参数,则参数值为src引用的参数的实际已计算的值 4.2第二步骤 (1) 在配置模板中, 数据源提供的列数和列值不直接对应目标数据表的列数和列值,即支持列扩充和列缩减等功能)。解析器会根据参数Param0和Param1所指定的物理起始行和终结行,遍历所有的行,同时根据 4.3第三步骤 (1) 在配置模板中, type 1 src 如:src=” ROW(0,0)” 如:src=” ROW(3,7)” 参数值 表示在中间行结果集合中取其一部分行记录作为目标行的一部分。如左:若假设Param0=”2”, Param1=”10”,即中间数据集合会有相应的九条中间记录,则ROW(0,0)表示取这中间行记录中的第一行作为目标数据的条行记录;则ROW(0,9)表示取中间结果集合中的第一条到第十条记录作为目标数据行的一部分行。 表示该行需要单独特殊定义。具体见下表。 2 如:src=”” (2) 在配置模板中, 5错误描述和诊断 1错误信息 随着实际运用过程中遇到的常见错误将会填充到该目录下。目前暂空。 6附录 另附一简单模板样例见民生项目组的Z:\\doc\\技术资料 的目录下(数据源文件为Data000000JS2004061.xls模板为ExcelImportLFJSConfig.xml) 因篇幅问题不能全部显示,请点此查看更多更全内容