- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
批量检验报告数据抽取统计实现
批量检验报告数据抽取统计实现
摘 要 本文阐述了针对部分检验机构无数据管理系统的情况,设计了基于JAVA的批量检验报告数据抽取系 统,系统采用了第三方插件包括jxl、POI和JCOM并进行了性能的比较分析,系统的建设实现了批量文件数据的抽取和集中分析。
关键字 批量文件;数据抽取;jxl;POI;JCOM
中图分类号TP392 文献标识码A 文章编号 1674-6708(2013)91-0223-02
1背景概述
当前部分产品质量监督检验机构在检测数据统计中,仍需人工查询每个检验报告,将相应的数据逐个记录,汇总后再进行统计分析。这种统计方法耗时且易错,本文阐述了利用JAVA和开源第三方插件实现批量处理Excel文件格式的检验报告,完成了检验数据的高效精准统计分析。
2文件处理插件简介
Java本身不提供对Excel文件数据的读取功能,需用第三方的插件实现,当前有jxl、POI和JCOM等插件支持JAVA程序实现Excel文件的处理。
开源项目jxl(Java Excel API)可实现java对excel的操作。JAVA程序通过jxl可以读取、修改EXCEL文件数据,也可以创建新的EXCEL文件。在JAVA 项目开发中可整合jxl来实现对EXCEL的操作。相比于其他插件,能够较好地实现数据处理时的内存控制[1]。
POI(Poor Obfuscation Implementation)是Apache Jakara项目组提供的一个开源项目,POI可以使Java程序对Microsoft OLE2 Compound Document 格式的文件读和写的功能。POI项目包括了POIFS、HPSF、HSSF、XSSF、HWPF、HSLF、HDGF等子项目,可对EXCEL、WORD、PPT、VISO等文件进行有效的操控,POI是目前为止对OFFICE系列文件操控功能较为完善的一个项目[2]。
JCOM(JAVA-TO-COM)插件可在微软的COM组件和JAVA之间起到了桥梁作用,JAVA程序可以通过JCOM调用COM组件进而操控WINDOWS平台系统应用程序。而微软的COM应用程序也可以通过这个机制访问基于Java的对象[3]。
Java利用jxl、POI、JCOM进行Excel数据抽读取的流程基本一致,首先是工具类的实例化,通过指定文件名称和路径载入Excel文件。通过工具类实例创建Workbook指向Excel工作簿,再根据工作表名称或是序号,由Workbook定位至数据所在的工作表Sheet。在工作表中的由行Row和列Col参数定位数据所在的单元格Cell,Cell中的值经过数据转换后便有程序提取输出。其中jxl和JCOM都是在Sheet直接通过行和列的值来定位数据,类似二维数组的数据定位,而POI是先定位行Row,再由Row的类以数据列的序号来定位单元格。
3系统设计
3.1 软件架构
抽取批量Excel文件数据的软件架构如下图一所示,程序使用递归的方式对多层文件中的Excel检验报告进行读取和分析,利用File类的listFiles函数,进行文件类型区分,将所有指定路径的文件夹内项目转换成文件链表进行遍历,链表中的元素若是文件夹类型,则递归处理,若是文件类型则调用第三方插件读取文件数据,对于读取的文件数据全部加入到一个缓存区。当全部的文件数据读取完成后,再有程序对数据缓存区中的数据进行遍历统计,获取统计数据。
3.2 数据单元结构
对于每一份检验报告有60多项有效数据,部分数据需采集后统计分析的,系统利用JAVA第三方插件抽取了一个检验报告的数据后形成一个统计单元ReportUnit,单元结构的设计如下图二所示,结构中前五个字段都设置成String类型,存放需要统计的数据值,Time和Mem字段为数值型,存放单个文件处理的时间和内存消耗,以便进行系统的性能分析。
3.3检验结论映射
数据抽取过程中,软件向EXCEL表格中读取的是原始值。报告中样品的检验结论是对多组数据的一个综合判定,用语有一定的规范性,语句较长,由几十个字符组成。为了统计的需要,需对检验结论进行简化分类,分类情况如下:将受检测样品的各参数都符合相关检测标准,映射成值为“合格”;对样品部分检测数据不符合相关检测标准,但综合判定不为不合格的,映射成值为“瑕疵”;对于样品关键数据检测不合格,按照标准,综合判定为不符合标准的,映射成值为“不合格”。通过以上设置,在数据统计过程中只需进行简单字符串比较即可完成数据的累计统计[4]。
3.4缓存区设置
批量文件数据的采集过程中,会形成一组ReportUnit,系统采用集合的方式将这一组数据采集单元收集起来
文档评论(0)