



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WORD试验报告的自动生成金良锋,周文祥(西南交通大学 牵引动力国家重点试验室,四川 成都 610031)摘要:为规范、方便地生成各类试验报告,研究了利用Visual Basic语言编写的Word试验报自动生成软件,分析了此软件的优点和实现方法,重点介绍了对多表格、多图形的处理,以车轮外形试验报告自动生成系统为实例,验证了此方案的实用、有效性。关键字:Word;VBA;报告;自动中图分类号:TP311.11;TP391.1 文献标识码: AAUTO GENERATION OF THE EXPERIMENT REPORT IN WORD FORMJIN Liang-feng,ZHOU Wen-xiang(Traction Power State Key Lab, Southwest Jiaotong University, Chengdu 610031, China)Abstract:For creating test report normatively and expediently, studied the software of the auto-generating test report in Word form by Visual Basic language, analysed the advantage and the methods to achieve, importantly, presented the technique to deal with multi-forms and multi-graphics, confirmed the practicability and validity of the methods by the auto-generating test report system of the outline of the wheel.Key words:Word;VBA;Report;Auto0 引言随着数字化技术的不断发展,各行各业每天都有大量的报告需要编制,而在大多数情况下仅仅是其中的数据、图表不同而已,如此周而复始的劳动,如果依靠人工通过计算机编辑表格、录入数据、绘制曲线,不仅劳动量巨大,而且容易出错。因此研究Word试验报告的自动生成具有重要的应用价值1-7。文献1-5分别利用Lab View 、Delphi 、Visual C+、Power Builder等可视化编程语言,应用ActiveX自动化、OLE(对象的链接与嵌入)对象模型、Word邮件合并等工具对Word格式报告的生动生成做了相应的介绍,但由于需要调用大量的控件和底层函数,联机机制比较复杂,不容易推广。文献6-7描述了如何采用Visual Basic语言将证书、报表的文本、数据自动录入到Word文档中,但没有深入应用Visual Basic语言对图形、图表的处理。本文以Visual Basic编程语言为基础,以自动生成车轮外形试验报告为实例,结合文档的模板技术,巧妙运用Word软件的“域”和“宏”两个功能,应用VBA(Visual Basic for Applications)编程,实现了文本、表格、图形的自动处理,从而自动生成Word试验报告。1 实现方法规范的试验报告至少包括文本、表格、图形等三部分,为了使报告美观,不仅要合理地安排文本、表格、图形等之间的位置,还要对文本的字体、段落、边框、底纹等要做一定的设置,同时还要格式化表格、图形等等。因此,Word报告生成系统的核心工作在于对文字、表格、图形的自动化处理,尤其是多表格、多图形。报告生成系统的实现框架示意图如图1所示。1.1 创建模板为了避免反复输入相同的信息或作重复性的格式修改,我们引用了模板技术。创建一个自定义的模板方法如下:新建一个空白Word文档,按照修改普通文档的方法,根据报告的需求,在文档中添加页眉页脚、标题、说明、文本框、分隔符等静态文本,在需要动态改变内容的位置插入书签、域。例如,一般试验报告都包括试验时间,用户只须在文档中插入书签,在系统中用VBA代码在此书签处插入一个“日期和时间域”,报告中即可自动生成当前时间。如果报告需要插入表格,首先要设定好插入表格的段落,再在下一段插入“分页符”,使其成为一个区域;如果报告需要插入多组图形,在模板的适当地方插入文本框,对每个文本框进行大小等格式编辑,再在每个文本框内插入书签,并进行编号。引用报告模板时,需打开对Microsoft Word 9.0 Object Library 的引用(对应类型库文件为Msword9.olb),以便可以引用Word类型库中的属性和方法。1.2 表格处理表格是试验报告的重要部分,但表格的内容具有动态变化性,主要表现在:(1)表的不固定性;(2)字段本身的可变性;(3)字段个数的可变性。这些因素给表格的自动生成造成了很大的困难。目前,在VB中生成表格有三种方式:(1)使用VB的微软数据报表设计器,同数据源,如数据环境设计器,一起使用,可以从几个不同的相关表创建表格;(2)调用VB的“PictureBox控件”,将表格内容输出到“PictureBox控件”,然后再手工输出到打印机上;(3)通过VB应用VBA宏语言,将报表内容输出到Word文档中,通过Word应用程序或者直接使用VBA语句打印。考虑到试验报告的完整、可观性以及表格的动态性,我们选用第三种方式。首先,读取报告需要的试验数据,将数据依次显示在“MSFlexGrid控件”的列表中,再引用模板,在相应的段落处选择一个区域,根据“MSFlexGrid控件”的行数和列数利用VBA语句创建表格,并将试验数据依次插入到表格中,然后对表格进行对齐方式、环绕方式、行列大小、单元格大小、边框底纹等属性的格式化处理。如果字段本身字符较多,用宏语言将字段截取分行,并设定行列距和文字字体、大小、对齐方式等属性;如果字段个数较多,超出了文档范围,则用宏语言重新设定页边距、纸型、纵横向等页面设置属性。1.3 图形处理试验完成后,通常需要在试验报告中绘制出某些参数或特性的变化曲线。为解决这个问题,我们在做测量试验时将试验数据保存为*.txt或*.dat等文件格式,在报告生成系统中直接读取数据文件,调用“PictureBox控件”绘制出此文件对应的曲线,并将文件名显示在曲线上方,然后通过抓取屏幕的办法获取“PictureBox控件”区域,将其保存为*.bmp或者*.jpg等图片格式,并设定保存路径。对于多组曲线,将图片按数字序号依次保存,如:1.bmp,2.bmp等。然后引用模板的文本框,按照设定的路径将保存的图片复制到剪贴板上,调用书签,将图片按序号粘贴到文本框中。1.4 报告输出根据需要可以选择是否直接打印报告文档,若是,则显示“打印”对话框,从该对话框取得打印的页码值,只要计算机上连接有打印机即可直接打印出报告;否则,显示“保存”对话框,按照用户选择的路径和文件名将报告保存到某个文件夹中。3 报告生成系统实例3.1 实现框架以车轮外形测量报告自动生成系统为例,根据报告生成系统的实现方法,此系统由5个部分组成:读取数据、文字处理、曲线处理、表格处理、报告输出。首先采用测量仪将车轮外形曲线数字化,并存储为*.txt文件。读取数据:找到保存数据文件的文件夹,打开所有的*.txt文件,读取存储的数据,将各项性能指标参数显示到列表中。文字处理:对模板中的固定文本及插入的动态文本进行字体、大小等处理。曲线处理:根据需要,再次读取数据文件中的数据,绘制出车轮的外形曲线,并将曲线和对应的指标参数一起以*.bmp图片格式保存在报告中。表格处理:自动生成车轮的各种性能指标参数的表格,并自动对表格属性作格式化处理。按照上述的实现框架,报告生成系统软件的算法流程图如图2所示。3.2 主要代码报告生成的一些比较重要的代码如下所示:(1) 引用报告模板声明了一个Word应用程序,使Word 中的 Application 对象对自动功能有效Dim Wapp As New Word.Application定义变量,代表Word的一篇文档Dim Wdoc As Word.Document 创建Word文档的一个引用,打开模板文件Set Wdoc = Wapp.Documents.Open(App.path & 记录模板.doc)(2) 曲线图片保存Dim num As String 定义图片保存路径Dim bmpnum As Integer 定义图片编号设定图片保存路径num = App.path & CStr(bmpnum) & .bmpSet picGraph.Picture = CaptureClient(Me)抓取图片,picGraph为PpictureBoxSavePicture picGraph.Picture, num 保存图片Set picGraph.Picture = Nothing 刷新图片插入图片到模板文本框的部分代码如下:For k = 1 To bmpnum 打开所有保存过的图片bq = pic & CStr(k) 文本框的书签编号bmpopen = App.path & CStr(k) & .bmp 路径Pic.Picture = LoadPicture(bmpopen) 重新加载Clipboard.Clear 清空剪贴板Clipboard.SetData Pic.Picture 保存到剪贴板Set wbook = Wdoc.Bookmarks(bq)wbook.Select 选中模板中文本框Wapp.Selection.Paste 插入到文本框内Next k(3) 表格生成Dim myRange As Range 定义一个Range对象Dim myTable As Table 定义一个表格Dim RowCount As Integer 表格行数目Dim ColCount As Integer 表格列数目Set myRange = Wdoc.Paragraphs(4).Range 返回Rang对象,它引用Wdoc模板文件的第四段将该区域折叠到结尾点MyRange.Collapse Direction:=wdCollapseEnd在选定区域内创建一个表格,表格行列分别对应列表中的行列数,根据表格中的内容自动调整单元格的大小,整个表格大小自动调整Wdoc.Tables.Add Range:=myRange,numrows:=indexRow + 1, numcolumns:=10, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitWindowSet myTable = Wdoc.Tables(1) 选中表格对表格中的每个单元格付值For RowCount = 1 To myTable.Rows.CountMSFlexGrid.Row = RowCount-1For ColCount = 1 To myTable.Columns.CountMSFlexGrid.Col = ColCount-1 With myTable.Cell(RowCount,ColCount).Range.Delete.InsertAfter MSFlexGrid.Text End With单元格中字体居中myTable.Cell(RowCount,ColCount). VerticalAlignment = wdCellAlignVerticalCenterNext ColCount Next RowCount(4) 打印输出Dim BeginPage%, EndPage%, NumCopies%, i%,num% 定义页码及文档编号选择输出方式If MsgBox(直接打印文档?选择YES送打印机,&NO数据文件.doc,vbQuestion + vbYesNo,输出选择)=vbYes Then显示“打印”对话框,docout为CommonDialogdocout.ShowPrinter从该对话框取得选定的值BeginPage = docout.FromPageEndPage = docout.ToPageNumCopies = docout.CopiesFor i = 1 To NumCopiesWdoc.PrintOut 打印文档Next iElse车轮数据记录docout.InitDir = App.path & 测量数据文件docout.FileName = 车轮数据记录&CStr(num) & .doc 设定保存路径及文件名docout.ShowSave 显示“保存”对话框Wdoc.SaveAs docout.FileName 保存文件num = num + 1End If3.3 实际运行按照上述算法,本文设计的车轮外形测量Word试验报告生动生成系统如图3所示。图3 车轮外形测量报告生动生成系统以某次测量为例,生成报告的操作过程如下:单击“读取数据”按钮,弹出“浏览文件夹”对话框,选择数据文件保存的文件夹,“确定”后,测量的车轮踏面的外形指标参数即显示在“所有踏面指标参数”列表框中。双击列表中“型面名称”,对应的车轮踏面的外形曲线及指标参数分别显示在“踏面曲线”图形框和“踏面指标参数”方框中。若需要将此车轮踏面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CI 555-2024水环氧沥青钢渣超薄抗滑表层技术规范
- 压力管道取证培训课件
- 2025年环保科技行业清洁能源技术研发前景报告
- 2025年汽车行业无人驾驶汽车发展前景研究报告
- 2025年医疗健康产业对老龄化社会的应对策略与发展前景研究报告
- 嵩县2025年河南嵩县引进研究生学历人才78人笔试历年参考题库附带答案详解
- 南昌市2025江西南昌航空大学科技学院图书管理员招聘1人笔试历年参考题库附带答案详解
- 2025重庆某国有企业招聘财务助理实习生2人笔试参考题库附带答案详解
- 2025江西吉安市青原区两山人力资源服务有限公司招聘5人笔试参考题库附带答案详解
- 2025新疆兵团可克达拉市广电网络有限责任公司招聘4人笔试参考题库附带答案详解
- 2025年领导干部任前廉政法规知识考试题库(含答案)
- 2025年四川基层法律服务工作者执业核准考试仿真试题及答案一
- 信息技术基础教程(WPS版)课件 第3章 Windows 10 操作系统的使用
- 小鹿斑比题目及答案
- 中学知识竞赛试题及答案
- 2024超声法检测混凝土缺陷技术规程
- 2025-2030中国建筑行业供应链金融发展现状与前景分析
- 2025-2026学年人教版(2024)初中物理八年级上册教学计划及进度表
- 《民间纠纷调解》全套教学课件
- 医院环境感染监测制度
- 医院一键式报警系统建设与实施
评论
0/150
提交评论