运用jxl将复杂excel报表导入数据库的设计与实现

运用jxl将复杂excel报表导入数据库的设计与实现

ID:13466185

大小:27.50 KB

页数:6页

时间:2018-07-22

运用jxl将复杂excel报表导入数据库的设计与实现_第1页
运用jxl将复杂excel报表导入数据库的设计与实现_第2页
运用jxl将复杂excel报表导入数据库的设计与实现_第3页
运用jxl将复杂excel报表导入数据库的设计与实现_第4页
运用jxl将复杂excel报表导入数据库的设计与实现_第5页
资源描述:

《运用jxl将复杂excel报表导入数据库的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、运用jxl将复杂excel报表导入数据库的设计与实现  【摘要】在许多检测单位的办公自动化系统中,需要使用到检测单位的大量检测数据,而这些数据存储于excel文件中,由于不同类型产品的检测报表存在一定差异,使用简单的方式读取excel文件存在代码可重用性差的问题。在分析各种报表的结构后,运用jxl和xml技术,实现了动态的将excel报表导入数据库的功能,并且适用于各种不同的报表结构。  【关键词】excel;检测报表;jxl;xml  0引言  在日常工作中,需要将大量包含检测数据的excel检测报表导入到许多检测单

2、位的办公自动化系统,为了方便对检测数据的使用,可以使用jxl来对excel文件进行操作。jxl是一个广泛用于读写excel文件的优秀的开源工具。Jxl提供了一种简单的读取excel文件的方法,该方法的基本思想是:通过jxl中的Workbook获取表中的sheet,然后通过sheet获取表中的每一个单元格cell,最后调用cell的getContents()方法获取数据。该方法可以快速的获取数据,但获取的数据不能被灵活的使用。为了灵活使用表中的数据,实现对表中的每一个数据进行操作,可将表中的数据存入数据库中,然后系统便可

3、自由的在数据库中获取相应的信息。  基于以上分析,结合各种检测报表的结构之间存在的共同特性,运用xml作为中介,实现了动态将报表导入数据库的功能,解决了代码重用性差的问题,系统使用人员只需要知道表结构,就可以将不同报表动态存入数据库中,不需要懂得代码编写。  1将excel检测报表中数据导入xml  通过对不同检测报表分析,检测报表与具有常见报表相同的结构,包括4个部分:标题、表头、表体、表尾。标题、表头及表尾具有一键一值的关系,表体中的内容可由横纵坐标共同确定。  根据报表结构特点以及具有的键值特性,将报表抽象为3个

4、Java类,KeyNameSet类封装键名、KeyValueSet类封装每个键对应的值、TableNameSet类用于封装不同的表名。  根据以上分析,按照表格特点配置xml文件,将表格中数据存入指定的xml文件中。这里的配置并不需要配置人员懂得xml的运用,只需要根据程序运行提升进行配置即可,下面给出一个配置举例。  输入选择的sheet的索引位置:0  输入您要配置tag:table  输入您要配置key:报表1  结束xml的配置吗?yes/no:no  输入您要配置tag:head  输入您要配置key:000

5、1表1A  输入您的值x偏移量:  输入您的值y偏移量:  结束xml的配置吗?yes/no:no  输入您要配置tag:head  输入您要配置key:A  输入您的值x偏移量:1  输入您的值y偏移量:0  结束xml的配置吗?yes/no:yes  配置成功,已生成配置!  通过以上配置,将生成一个xml配置文件,文件内容如下:                        配置中tag即表示xml文件中的标签,本文中tag的取值有table(标题),head(表头),body(表体),foot(表尾),body

6、-col(表体列),body-row(表体行),这些定义是根据前面分析的表结构来定义的。偏移量表示所存入的键对应的值所在excel表中的位置。  2将xml中的数据导入数据库  通过两个步骤实现该功能,第一步,将前一节配置所得的xml文件中的所有键值对都存入数据库;第二步,根据存入数据库中的键值,查找excel文件中的表格内容,存入数据库。  /*将xml配置存入数据库*/  publicstaticvoidtoStroeKeys(StringxmlFile){  Filefile=newFile(xmlFile); 

7、 SAXReaderreader=newSAXReader();  Documentdoc=null;  try{  doc=reader.read(file);  }catch(DocumentExceptione){  e.printStackTrace();  }  XmlLoadertbLoader=XmlManeger.getTable(doc);  ArrayListheads=XmlManeger.getKeys(doc,XmlManeger.head);  Connectionconn=DbUtil.g

8、etConn();  ……  inttableId=DataService.getTableId(tbLoader.getKey().toString()).getId();  for(inti=0;i  heads.get(i).setTableId(tableId);  DataService.addKey(heads.get

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。