一种可定制表格式的Excel表解析方法

文档序号:6400304阅读:601来源:国知局
专利名称:一种可定制表格式的Excel表解析方法
技术领域
本发明涉及一种通用的、可定制表格式的Excel表解析方法,结合流域水调业务,用于解决形式复杂,格式不同的水调业务Excel表格的数据解析问题,属于计算机报表处理技术领域。
背景技术
随着信息技术的迅猛发展,水利信息化水平也得到了很大的提高。在日常办公中,流域管理者在水资源决策、水量调度管理等方面存在数据不全面、办公方式落后、办公效率低等问题,给水资源决策和水量调度管理带来了诸多不便。为了保证不同流域的大量水资源数据能够准确、高效地录入数据库并进行汇总计算,需要为负责数据录入的水利工作者提供标准化的数据表格。以传统网页形式呈现的表单影响了用户体验,通过Excel表格进行批数据录入的方式在办公中已得到越来越普遍的采用。然而,由于水利业务所需的表格形式复杂、数据量大、专业性强,传统的Excel上报解析方式已经远远不能满足水利业务的处理需求。因此,有必要提供一种通用的Excel表格解析方法实现流域水调业务可定制复杂表格的高效解析。

发明内容
发明目的:针对现有技术中存在的问题,本发明基于现有的Excel报表解析技术,提供一种通用的、可定制表格式的Excel表解析方法,本发明能够高效、准确的处理此类Excel报表的解析问题。技术方案:一种可定制表格式的Excel表解析方法,包括如下步骤:步骤1:根据水调业务需求,定义所需要解析的Excel表相对应的XML格式的配置文件;步骤2:通过浏览器将Excel文件上传至Web服务器后,调用POI (文件解析类库)解析该文件,并将其以文件流的形式存储在File对象中,如果解析成功,则进入步骤3 ;否贝U,进入步骤7 ;步骤3:根据上传文件的文件名查找索引文件(文件格式为XML),根据索引文件获取该文件的目标数据表及相对应的XML配置文件信息,调用Dom4j (XML解析类库)解析此XML配置文件,成功则进入步骤4,否则进入步骤7 ;步骤4:根据XML配置文件获取相应数据表字段、特殊节点坐标等辅助信息,从而解析文件内容并将需要入库的Excel信息封装成数据对象,如果成功,则进入步骤5 ;否则进入步骤7 ;步骤5:使用Hibernate实现数据入库;如果成功,则进入步骤6 ;否则,进入步骤7 ;步骤6:将上传文件备份至Web服务器,结束流程;步骤7:记录错误日志并向用户返回友好的出错提示信息,结束流程。
其中,步骤I中根据水调业务需求,定义的XML格式的配置文件有两类:第一类为XML格式的索引文件,其存储的基本形式为一种Excel文件名形式对应多个目标数据库表名和一个XML配置文件名;第二类为XML格式的EXCEL表格解析辅助文件,其存储的内容为数据库表字段信息,特殊节点坐标信息等。步骤2中上传文件调用Java文件解析类库POI进行解析。步骤3中使用索引文件以键值对的形式存储上传文件的目标数据表信息及相对应的XML配置文件信息,然后根据该配置文件名查找配置文件,并使用Java调用Dom4j(XML解析类库)解析该配置文件。步骤4为本发明的核心内容,由于需解析复杂多样的流域水调业务Excel表格,解析辅助配置文件中包含了大量特殊节点信息。步骤4中结合XML配置文件的数据库表字段信息,通过Java的反射机制将Excel表格信息动态封装成数据对象;结合XML配置文件的特殊节点坐标信息实现单Excel导入多数据库表的业务需求。步骤5中使用Hibernate实现数据入库时,如果有数据入库失败,则通过Spring的事务管理机制对数据库进行回滚,以保持数据的一致性。本发明采用上述技术方案,具有以下有益效果:通过可配置文件,实现了流域水调业务可定制复杂Excel表格导入多数据库表的业务需求;动态导入表格,导入过程对用户来说是透明的,用户无需手工选择导入表格条件;支持形式复杂,格式不同的Excel的导入;精确的错误信息提示机制和事务管理机制,保持录入数据库数据的准确性和数据一致性。


图1为本发明实施例的方法流程图。
具体实施例方式下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。如图1所示,可定制表格式的Excel表解析方法,包括如下步骤:步骤1:根据水调业务需求,定义所需要解析的Excel表相对应的XML格式的配置文件。其配置文件有两类:第一类为XML格式的索引文件,其存储的基本形式为一种Excel文件名形式对应多个目标数据库表名和一个XML配置文件名;第二类为XML格式的EXCEL表格解析辅助文件,其存储的内容为数据库表字段信息,特殊节点坐标信息等。例如,一种文件名类型的配置方式如下所示:<node>
<excelname> 用水计 M 日报</exc elname> <entityname>BurPlanDay</entityname> <entityname>Glxi</entitynarne>
<entitynaine>Zlxj<7entityname>
<entityname>Hj</entityname>
<xmlname> 用水计戈 ll H 报解祈.xml</xmlname>
</node>其对应的文件名为:用水计划日报;对应的数据库表名为=BurPlanYeaiN Glxj.Zlxj、Hj ;对应的配置文件名为:用水计划日报解析.xml。例如,一种数据库表字段配置信息如下所示:
<Database>
<node>
<name> 河段名称 </ name〉
<code>setSegmentname</code>
</node>
<node>
权利要求
1.一种可定制表格式的Excel表解析方法,其特征在于,包括如下步骤: 步骤1:根据水调业务需求,定义所需要解析的Excel表相对应的XML格式的配置文件; 步骤2:通过浏览器将Excel文件上传至Web服务器后,解析Excel文件该,并将其以文件流的形式存储在File对象中,如果解析成功,则进入步骤3 ;否则,进入步骤7 ; 步骤3:根据上传文件的文件名查找索引文件,根据索引文件获取该文件的目标数据表及相对应的XML配置文件信息,解析所述XML配置文件,成功则进入步骤4,否则进入步骤7 ; 步骤4:根据XML配置文件获取相应数据表字段、特殊节点坐标等辅助信息,从而解析文件内容并将需要入库的Excel信息封装成数据对象,如果成功,则进入步骤5 ;否则进入步骤7 ; 步骤5:使用Hibernate实现数据入库;如果成功,则进入步骤6 ;否则,进入步骤7 ; 步骤6:将上传文件备份至Web服务器,结束流程; 步骤7:记录错误日志并向用户返回友好的出错提示信息,结束流程。
2.根据权利要求1所述的可定制表格式的Excel表解析方法,其特征在于,步骤I中根据水调业务需求,定义的XML格式的配置文件有两类: 第一类为XML格式的索引文件,其存储的基本形式为一种Excel文件名形式对应多个目标数据库表名和一个XML配置文件名;第二类为XML格式的EXCEL表格解析辅助文件,其存储的内容为数据库表字段信息、特殊节点坐标信息。
3.根据权利要求1所述的可定制表格式的Excel表解析方法,其特征在于,步骤2中上传文件调用Java文件解析类库POI进行解析。
4.根据权利要求1所述的可定制表格式的Excel表解析方法,其特征在于,步骤3中使用索引文件以键值对的形式存储上传文件的目标数据表信息及相对应的XML配置文件信息;调用XML解析类库Dom4j解析XML配置文件。
5.根据权利要求1所述的可定制表格式的Excel表解析方法,其特征在于,步骤4中结合XML配置文件的数据库表字段信息,通过Java的反射机制将Excel信息动态封装成数据对象;结合XML配置文件的特殊节点坐标信息实现单Excel导入多数据库表的业务需求。
6.根据权利要求1所述的可定制表格式的Excel表解析方法,其特征在于,步骤5中使用Hibernate实现数据入库时,如果有数据入库失败,则通过Spring的事务管理机制对数据库进行回滚,以保持数据的一致性。
全文摘要
本发明公开一种可定制表格式的Excel表解析方法,包括步骤根据水调业务需求,定义所需要解析的Excel表相对应的XML格式的配置文件;通过浏览器将Excel文件上传至Web服务器,并解析该文件;根据上传文件的文件名,获取该文件的目标数据表及相对应的XML配置文件信息,并解析该配置文件;通过配置文件信息对上传文件内容进行分析,将需要入库的信息封装成数据对象;使用Hibernate实现数据入库;将上传文件备份至服务器。该发明通过可配置文件,实现了复杂Excel的通用解析过程,尤其适用于流域水调业务表格的处理;精确的错误信息提示机制和事务管理机制,保证数据库数据的准确性和数据一致性。
文档编号G06F17/24GK103150380SQ20131008037
公开日2013年6月12日 申请日期2013年3月13日 优先权日2013年3月13日
发明者许峰, 陈亚明, 叶枫, 娄渊胜, 范珂, 王亚普, 余霖, 周远超 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1