×
嵌入式 > 技术百科 > 详情

LabVIEW中Excel报告生成功能开发

发布时间:2020-06-17 发布时间:
|

LabVIEW中Excel报告生成功能开发

介绍利用LabVIEW报告生成工具包生成包含数据、文本、表格、图表、图片以及VBA宏的Excel格式报告的3种方法,及通过ActiveX自动化技术对报告生成工具包进行二次开发的过程。
  关键词:LabVIEW;Excel;报告;ActiveX自动化

  LabVIEW报告生成工具包通过ActiveX技术将Microsoft Word和Excel与LabVIEW集成开发环境结合起来,用于快速生成专业的报告,从而高效地表示出各种测试数据和结果。用户可以移植、修改现有的报告模板,并使用标准的LabVIEW功能,扩展该工具包的报告生成功能;通过运行由VBA编写的宏代码还可以进一步自定义修改报告生成过程并自动生成报告。
  LabVIEW报告生成工具包包含了3类VIs(类似传统语言的函数或过程):①高级报告生成VIs,用于新建报告和进行常规操作。②专门用于生成Word格式的报告VIs,其中包括了文档管理、查找、替换、编辑和格式化Word中的图表、图片,通过编写VBA代码自定义各种复杂的操作。③专门用于生成Excel格式的报告VIs,其除了能进行常规的Excel操作外,还可以操作Excel中的宏。
Report GenerationExcel Specific VIs函数模板中的Excel Easy Title.vi、Excel Easy Text.vi、Excel Easy Table.vi、ExcelEasy Graph.vi 4个简易VIs和General、Format、Graphs and Pictures、Advanced 4个函数子模板。
2.1直接输出Excel格式报告
  下面的例子描述了使用简易VIs输出Excel文档报告的过程,框图程序见图1,运行结果是生成包含文本、表格、图表的报告。
  首先新建一个Excel文档,为此在LabVIEW的FunctionsReport Generation模板中选择New Report.vi,将其放置在框图程序中,设置report type属性为Excel,当程序运行时LabVlEW利用ActiveX技术调用Microsoft Excel自动化服务器,从而达到控制Excel工作薄与工作表生成过程的目的。为了加速报告的生成,Excel的初始窗口模式设置为minimized。Excel Easy Title.vi函数用于为Excel文档指定标题,通过给字符串变量Title赋值,可以自定义报告的标题内容。此外,还可以设置标题的字体、字号、下划线、颜色等参数。Excel Easy Text.vi用于向工作表中添加文本和设置文本属性。参数start为文本区域左上脚的单元格,end为右下脚单元格,border值为Ture,即显示文本框。Excel Easy Table.vi可以向报告中插入表格,程序中将二维字符数组Test Table赋值给Excel Easy Table.vi,并显示表头。
?
  在Microsoft Excel中,可基于模板来新建工作簿。模板中可包含格式样式、标准的文本、公式、Visual Basic for Applications宏和自定义工具栏等。使用模板可以减少输入的工作量、为复杂的报告制定标准格式、避免反复输入相同的信息或进行相同的格式修改,从而大大加快报告的生成速度。
  用户可以事先定制模板以确定报告格式,然后运行LabVIEW应用程序将测量结果插入到模板中的占位符处,此外还可以进行简单的编程快速实现报告的显示、打印、保存等功能。下面的例子描述了利用Excel模板输出报告的过程,框图程序见图2。
  Visual Basic for Applications(简称VBA)是新一代标准宏语言,它为Office提供了多种功能,例如无模式用户窗体及对附加ActiveX控件的支持。VBA的项目(Project)可以由使用VBA的Excel、Word、PowerPoint等称为宿主的Office应用程序来调用。LabVlEW中用于执行VBA代码主要有两种方法:一种是在模板文件(.dot)中创建宏,一种是调用VBA模块文件(.bas)。
  有时候用户需要在Excel中做大量重复性的工作,这时候使用宏可能是最好的方法。宏实质是VBA编写的程序,用以自动完成所需任务。对于Excel97及以上版本,LabVIEW可以通过Excel Run Macro.vi来执行宏,并能向宏传递参数或取得宏的返回值。当在宏中调用另—个应用程序的对象时,通过Excel Add Reference to VBproj.vi可以获得该对象的引用,从而能够使用对象的属性和方法。
  有时为了便于程序维护,用户可以单独编写VBA,并将其保存在模块文件(.bas)中,需要时通过指定宏名进行调用,如图3。框图程序中,Append Numeric Table to Report.vi向报告中插入二维表格数据,然后使用Excel Import Module.vi导入外部VBA模块文件“C:\Test Mocro.bas”,Excel Run Macro.vi运行模块中定义的宏Process Data,Excel Remove Module.vi从Excel工作薄中移出模块,Print Report.vi打印Excel报告。
?
?
ActiveXAutomation Refnum模板中选择自动化引用控制量,将其 放置在前面板上,从对象列表中选择Microsofi Excel 11.0 Object Library 1.5(例子中使用的是Excel 2000),这样Excel的引用就添加到应用程序中,其对应的图标为 Excel.Application。为了简化访问自动化服务器的过程,LabVIEW在其FunctionCommunic ationActiveX模板中 提供了一组与ActiveX操作相关的子VI,其中Automation Open.vi打开引用,启动Excel自动 化服务器,并将引用传递给其他节点,如属性节点(Property Node) 、调用方法节点(Invoke Node)。程序中LabVIEW设置Excel窗口属性Window State为xlMinim ized,即将窗口最小化,接着调用ExecuteExcel4Macro方法,执行宏代码,再调用Quit方法 ,退出Excel应用程序,Automation Close.vi随即断开引用。运行程序,可以看到Excel启 动后,Windows任务栏上出现最小化后的Excel图标,执行预先定义的宏后自动退出Excel, 从而有效地避免了报告生成过程中用户的误操作。这里仅介绍了ActiveX函数模板的基本使 用,以及调用Excel过程的总体框架,用户可以根据实际需要进行扩充从而构建出自己的函 数库。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题