欢迎来到天天文库
浏览记录
ID:8965002
大小:325.50 KB
页数:5页
时间:2018-04-13
《excel数据自动抽取设计与实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Excel文档数据自动抽取设计与实现中国人民革命军事博物馆罗宁摘要:本文介绍了一个用VB6开发的抽取Excel文档内容的方法,利用这种方法可以抽取零散数据,并方便批量倒入数据库。对于数据的离线采集,批量导入非常实用。关键词:vbExcel数据抽取一、引言军事博物馆是个具有50年历史的老馆,从文物征集到整理入藏的过程中会形成很多纸质的档案和交接的帐目表格。这些档案和帐目过去基本是手写誊抄,不仅费时费力,还不利于查询利用和管理。计算机普及后,征集人员曾把手写文物档案改为Word文档,但在做交接帐目时还需手工录入,效率仍然不高。为了解决数据重复录入,耗时且出错率高的问题,
2、笔者提出了用Excel工作簿取代Word文档的数据采集方案,并通过VB编程解决了数据批量抽取,形成各种交接帐目,并可将帐目中的数据导入文物帐目数据库,以利于进一步的管理。此方案应用后能很好地适应这种数据分散采集,统一处理的工作模式,提高了工作流程的自动化水平和工作效率。现以“征集帐目生成程序”为例介绍这一方法。二、实施方案分析1、需求分析文物管理要求一物一档,军博使用的文物档案是按国家文物局的标准定制的含文物名称、数量、年代、质地、尺寸重量、捐赠者、流传经历等几十个著录项目共7页的表格。笔者按此格式制成了含7个工作表的Excel工作簿作为文物档案模板。每份档案以“入
3、馆凭证号”命名。工作中需要每隔一段时间从一批单个的Excel档案工作簿中自动抽取出入馆凭证号、文物名称、数量和来源项目的数据,填入一个新的Excel列表,自动生成征集帐目,以满足建帐要求。文物档案工作簿的第二页表sheet2中,有名称、原编号、时代、作者/物主、制作时间、数量、质地、色泽、用途、作者小传、来源(含发掘地址、拨交单位、采集地区、交换单位、捐赠者姓名、捐赠者地址、经办人)、尺寸重量、入馆日期、入馆凭证号、附属物、形状内容描述等多个著录项。如下图所示:需要抽取的数据项为入馆凭证号、名称、数量、来源(由拨交单位、捐赠者地址、姓名等项目组合而成)四项,形成新的
4、征集帐目表单如下:5入馆凭证号名称数量来源2009/001名称一1来源一2009/002名称二1来源二每份档案抽取的数据形成新表的一行数据。这样,一批需要交接的文物档案可以统一处理形成一个征集帐目表,用于统计、归档和交接。需抽取的数据都填写在原Excel档案工作簿中的固定单元格内,用编程的方法可以实现定位抽取并循环填入新Excel工作簿“征集帐目表”的相应的单元格内。两表数据对应单元格如下表所示:数据项对应原工作表对应原表单元格对应新工作表对应新表单元格入馆凭证号Sheet2H21结果A(n+1)名称Sheet2C1结果B(n+1)数量Sheet2H3结果C(n+1
5、)来源(拨交单位)Sheet2D12结果D(n+1)来源(捐赠者地址)Sheet2E15结果D(n+1)来源(捐赠者姓名)Sheet2E14结果D(n+1)2、功能分析程序界面如下图所示:表单上半部分的一组DirveListBox、DirListBox和FileListBox控件用于选择存放需处理的成批文物档案工作簿所在路径。选定后FileListBox中显示出整批的文物档案工作簿名称。表单下半部分的一组DirveListBox、DirListBox和FileListBox控件用于选择存放新的“征集帐表单.xls”文件所在路径,在选定此文件后,“处理数据”按钮显示为
6、可用,点击后即开始逐个抽取档案工作簿中固定单元格内的内容,按需组合后,逐行填入征集帐表单,自动生成帐目内容。处理每个档案文件时,档案文件名高亮显示,处理完成后提示处理所用时间。一般一分钟内可以处理20件文档。数据抽取后生成帐目文档如下图所示:5一、程序实现1、流程图:2、核心代码:在VB6.0环境中,建立一个标准的EXE工程,在“工程”菜单下选择“引用”项,然后加入MicrosoftExcel11.0ObjectLibrary,用于加载与Excel交互代码的类库支持。此程序主要实现一个循环和一个数据抽取填入。数据抽取和填入采用编写与Excel交互的类代码来实现,在循
7、环里调用这个类的实例实现文档的批量处理。建一个与Excel交互的类模块cls_excel代码如下:PublicFunctionC_Excel(PdirAsString,filenameAsString,posAsString,MidFileNameAsString)‘变量说明:‘Pdir为Excel文件所在路径,filename为需抽取数据的原工作簿名,pos为正处理的文件在文件列表中的位置值加1即新表中需填数据的行号,MidFileName为要填入的“征集帐表单.xls”所在路径。DimExcelObj1AsExcel.Application‘定义一个Exce
此文档下载收益归作者所有