0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于LabVIEW快速创建报表的一些方法

jf_V8z5L4Nx 来源:传感测控物联网 2023-07-31 10:52 次阅读

在测控应用上,一般都需要软件能够出报表,方便保存或打印测试信息、数据、图表等。出报表,这可以说是LabVIEW的拿手好戏了。在LabVIEW里出一份像样的报表,与代码编程比起来,那可真是事半功倍。

本篇推送里我给大家介绍三大类五六种出报表的方法——都是简单、快速、高效的方法。

1.使用图表控件导出数据功能快速创建数据报表

这个方法可以快速创建excel格式的数据报表,简易方便,几乎没有编程工作量。

例如下面这个代码,运行后自动产生一个excel临时文件,保存产生的信号数据。

wKgaomTHIfCAOR-hAAAg8tCAq5A411.png

上述代码产生的Excel文件:

wKgaomTHIfCANuy8AAD2BPHButU999.png

这个本质上是通过图表控件导出数据方法创建的excel文件。其实也可以不用代码,用户可以在图表控件上单击鼠标右键,选择Export->Export Data to Excel也是可以生成和保存这个Excel文件的。

这个方法非常简便,但是缺点也很明显。例如不能自动保存报表、不能给报表添加表头信息、不能给报表增加其它数据等。

2.Report Generation VIs

想要创建正儿八经的报表,我们需要专业工具。

Report Generation VIs是一组LabVIEW自带的用于创建和修改报表的VI,在Programming->Report Generation分类下可以找到它们。

Report Generation VIs可以创建word、excel或者html格式的报表。

wKgaomTHIfCAciB0AALzjzHydnc881.png

1)Report Generation相关VI介绍

分类 VI名称 功能
/ Create Easy Text Report 创建简易文本报表,输出至打印机或者文件。报表格式可以为HTML、Word或Excel,报表内容为文本。可设置页眉、页脚、字体等。
/ Create Report 创建报表,输出报表引用。通过报表引用可以为报表增加文字、表格、图像等内容,也可以设置字体、页眉、页脚等。报表格式可以为HTML、Word或Excel。
/ Print Report 打印报表。
/ Save Report to File 保存报表。
/ Set Report Font 设置报表字体。
/ Append Report Text 添加文本至报表。
/ Append Table to Report 添加表格至报表。
/ Append List to Report 添加列表至报表。
/ Append Control Image to Report 添加控件图像至报表。
/ Append Image to Report 添加图像至报表。
/ Dispose Report 关闭报表并释放内存。
/ Report 提供设置对话框,设置好报表表头信息、数据、存储路径或打印机等,以预先设置好的格式创建报表。报表文件格式可以为HTML、Word或Excel。
/ MS Office Report 通过模板创建Word或Excel格式报表。
VI Documentation Append VI Block Diagram to Report等 一些可把程序框图、界面、子VI清单等信息加进报表的VI。
Report Layout Set Report Margin、Set Report Orientation等 一些设置报表布局的VI。
Word Specific Word Easy Title、Word Easy Table等 Word格式报表特定一些VI,例如给报表增加表格。
Excel Specific Excel Easy Table、Excel Easy Graph等 Excel格式报表特定的一些VI,例如给图表增加图表。
HTML REports Only Append Horizontal Line to Report、Open HTML Report in Browser等 HTML格式报表特定的一些VI,例如给报表增加横线、超链接、在浏览器中打开报表。
Advanced Report Generation Append File to Report、Querry Available Printers等 附加文件到报表、查询可用打印机等报表相关高级功能。

2)创建简易文本报表

下面代码使用Create Easy Text Report创建一个简易的HTML报表。

wKgZomTHIfCAF8hSAAA5CVSgtMY417.png

报表的样式如下(截屏时调整了浏览器窗口大小):

wKgZomTHIfCAD9A3AAasEk3TUqM001.png

3)创建预先格式化报表

把Report Generation分类下的ReportwKgZomTHIfCAOaqeAAAIC-oWZvQ091.png放置到程序框图中,双击按照下图设置好报表格式。

wKgaomTHIfCALrQFAAMp4HFC7G4660.png

代码如下:

wKgZomTHIfCAOBmTAAAwbUD2DjY915.png

运行后产生的word格式报表如下图(部分)。

如果设置的时候不勾选Include Table就不会有长长的、保存数据的表格(100个数据,共8页)。

wKgZomTHIfCALifYAAQP_mgAdKY863.png

4)使用模板创建报表

我们自己定义一个Excel模板,如下图。其中Author、Date、Time、Sigal Graph和Signal Data是需要写入的内容。

wKgaomTHIfCAcO3IAABay6ttuHE397.png

放置一个MS Office Report到程序框图上,双击在设置中选择我们之前创建的模板文件,就会自动分析出该模板需要输入的数据。Report Contents里列出了我们可以输入的内容名称。我们把Signal_Graph输入在报表中的呈现形式(Input Apperance in Report)修改为Graph,把Signal_Data输入在报表中的呈现形式修改为Table,其它默认。

wKgaomTHIfCAEN64AACp5e6k7kM873.png

这里插句话,前面的Excel模板是怎么制作的呢?LabVIEW怎么会知道我需要输入哪些数据的呢?其实很简单:新建一个Excel文件,填入固定信息(例如报表中公司名称、小标题等),使用公式中的“定义名称”定义需要输入的数据,为需要输入的数据指定输入起始单元格位置,最后保存为Excel模板文件(.xltx)即可。定义名称时输入的“名称”就是我们在LabVIEW里Configure MS Office Report时可以看到的报表内容(Report Contents)。

wKgaomTHIfGABVcdAADbp-HBuCY196.png

我们用下面的代码按照上面设计的Excel模板创建一个报表。代码里我们把信号数据转成了一维数组,然后把一维数组转成了20x5的二维数组,目的是为了让excel报表中的数据不要那么长(否则就像前面word报表中一样,100个数据会需要好几页才能放得下)。

wKgZomTHIfGARRAFAAA9vvvQkOw977.png

产生的excel报表如下图。可以看到,正如我们期望的那样,在Signal Graph下面自动插入了信号波形图形;在Signal Data下自动插入了信号数据,第一列是自动输入的编号;Autor等输入的信息,也都填入了指定的位置。

wKgZomTHIfGAPJkDAAVioPQD9nY634.png

这个Excel报表,因为对信号数据的展示重新进行了编排,所以看上去更加美观了,整个报表只需要一页。这样一个报表我想已经能够满足很大一部分项目的使用需求了。然而如你所见,它的创建过程其实非常简单:制作模板、一个VI搞定。

5)使用VI创建报表

下面这个代码,使用Create Report、Append Text to Report、Append Control Image to Report、Append Table to Report、Excel Rename Worksheet、Save Report to File等VI创建并保存报表。

在调用Create Report时,我们制定了使用4)中创建的Excel模板。模板不是必须的,但是我觉得模板可以很方便地预先设定报表格式,可以简化不少工作。在有模板的情况下,Append Text to Report等VI可以使用模板中定义的名称(公式-定义名称)指定待写入内容在报表中的位置。

wKgaomTHIfGAAQxBAAGCirJqGKw716.png

产生的报表如下。截屏是包含报表的Excel电子表格,可以看到电子表格的名称已经重新命名为我们在代码中指定的名称。

wKgaomTHIfGAI7EXAAHc9FyRDm0587.png

下面这个代码创建和上面类似的报表,但是不使用Excel模板;另外它除了将报表保存为电子表格,还保存为pdf。

wKgZomTHIfGAO6MqAAFTf_VwZ44831.png

产生的excel报表如下。通过指定行、列值,我们把图表和数据放置到报表中间位置了。

wKgZomTHIfGALLc5AATqL7z9IMU696.png

代码中我们调用Excel Get ActiveX References获得了Excel Workbook的ActiveX引用,然后调用ExportAsFixedFormat方法将报表保存为PDF格式。PDF格式的报表效果如下。

wKgaomTHIfGAD7OzAAKC4hPowO4983.png

使用Report Generation VIs根据需要可以创建多种格式和复杂度的报表,能够满足绝大多数的开发要求。但是,使用Report Generation VIs创建Word和Excel格式的报表时,以下几点需要特别注意:

a)计算机上必须安装有与文件格式对应的Offcie软件。

要创建Word格式报表,必须安装有Word软件;要创建Excel格式报表,必须安装有Excel软件。在没有安装这些软件的计算机上,运行产生Word或Excel格式报表的代码,无法产生报表,并可能会导致软件运行异常。

b)Office的版本需要是LabVIEW支持的版本。

c)32位的LabVIEW只能完美支持32位的Office。64位的LabVIEW能够支持64位的Office,是否能够完美支持32位的Office我没有测试过。32位的LabVIEW+64位的Office,会导致出现报表不能保存、保存报表时LabVIEW崩溃退出等问题。

d)如果不能保存报表、又不报任何错误,可以尝试下面这个方法。

在“C:Program Files (X86)National InstrumentsLabVIEW 2022vi.libaddons_office_exclsub.llb”路径下找到“Excel_Save_Workbook.vi”,打开可以看见一个灰色的调用节点,右键选择Relink,然后保存。

wKgaomTHIfGAWyawAANRxXSIDTc153.png

Relink之后的变化:

wKgZomTHIfGAR3xXAAO2aEiDTFk177.png

借助Report Generation VIs生成报表需要安装有Office软件,需要Office的版本是LabVIEW支持的,如果是32位的LabVIEW则不能使用64位的Office,这些条件在目标机器上是不一定能够满足的,计算机更新或维护后Office版本可能也会有变化。

有没有办法可以既能生成Word或Excel格式报表,又不依赖Office软件呢?我们可以使用下面介绍的工具。

3.Viewpoint Xlsx Toolkit/Viewpoint Docx Toolkit

从名称就可以看出来,这两个插件一个负责产生Excel格式的报表,另一个负责产生Word格式的报表。与Report Generation VIs不同的时,它们不需要部署的计算机上安装有Excel或Word软件。

这两个插件都可以在VIPM里找到。我们以Viewpoint Docx Toolkit为例,说明一下怎么生成word报表。

这个插件不是免费的,但是我觉得很便宜。一个License的价格是1865元,只需要开发端授权,使用该插件开发的功能可以免费部署到任意台计算机上,与每台应用端部署Office的成本比起来是不是很优惠?

wKgZomTHIfGAVFqWAAGpvAuk6yY491.png

安装好之后,我们可以在Programming分类下找到Viewpoint Docx Toolkit。

wKgaomTHIfGAWPhPAACWx-dDIWM137.png

下面的代码使用Viewpoint Docx Toolkit提供的API函数创建word报表。

wKgZomTHIfGAfi0FAAFhwEoceqI091.png

创建的速度非常快,比使用Report Generation VIs创建报表要迅速得多,而且不需要计算机上安装有Office软件。创建好的报表如下。

wKgZomTHIfGAYvjuAAFJmDkYeHk474.png

好了,以上是关于LabVIEW里快速创建报表的一些介绍,希望能够帮助到大家。因为使用Office的ActiveX创建报表,都比上面的方法复杂,就不详细说明了。文章如有不对的地方欢迎大家指正。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LabVIEW
    +关注

    关注

    1918

    文章

    3619

    浏览量

    316997
  • 编程
    +关注

    关注

    88

    文章

    3440

    浏览量

    92404
  • Excel
    +关注

    关注

    4

    文章

    212

    浏览量

    55185
  • 报表
    +关注

    关注

    0

    文章

    18

    浏览量

    9279

原文标题:谈谈LabVIEW怎么事半功倍出报表

文章出处:【微信号:传感测控物联网,微信公众号:传感测控物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview程序动态创建快捷菜单,对表格属性的一些简单应用

    labview程序动态创建快捷菜单,对表格属性的一些简单应用
    发表于 05-26 14:26

    labview一些文章

    labview一些文章
    发表于 05-26 21:43

    labview一些文章

    labview一些文章
    发表于 09-24 17:44

    怎样快速的得到一些芯币

    labview 新手想要在贴吧下载点例程,可是芯币不够啊。怎样可以快速的得到一些芯币呢?
    发表于 04-02 09:08

    关于FPGA 软件的一些使用方法

    本帖最后由 XYWYLR 于 2013-7-11 16:00 编辑 关于FPGA软件的一些简单使用教程。希望可以帮到一些初学者
    发表于 07-11 15:56

    LabVIEW你不可不知的一些控件或常量的创建

    使用Labview的都知道,数据显示或传送都依靠控件来完成的,大部分控件如数值、布尔、波形等等一些控件Labview中已经封装好,从函数面板中拖出就可使用,但是有时变成会涉及到一些如数
    发表于 02-06 11:45

    Labview创建新的excel报表

    Labview创建新的excel报表,出现如下错误该错误代码未定义。出现未定义错误可能有多种原因。例如,代码说明不存在,或者连线输入的数值并非对应于错误输入的错误代码。 此外,出现未定义错误代码
    发表于 12-27 16:30

    关于labview报表工具的安装

    我的是labview2013版本的 为什么我安装好报表工具好后 面板上依旧没有MS Office 这个选择图标还有关于 查找范例里面生成报表范例说我没装 是我本身安装的软件就有问题嘛
    发表于 01-13 22:43

    关于AF的一些初步认识

    消息携带的数据。Sned Beta Task.vi是其他操作者用来发送“任务”消息至Beta操作者的VI,该Vi将创建消息的个实例并用一些消息填充信息Do.vi定义了Beta收到“任务“消息时执行的动作
    发表于 11-24 20:21

    关于表格控件的一些使用方法

    关于表格控件的一些使用方法,里面有源程序,说明文档,不足之处,希望指点指点
    发表于 09-20 22:57

    关于labview一些小程序

    一些关于labview的小程序
    发表于 06-23 23:31

    讲述了一些快速配置驱动的方法

    ,这个博文讲述了一些快速配置驱动的方法;还有蓝桥杯单片机组编程题准备 -模块编程练习这里面有一些模块练习题,可以很方便的记忆一些键盘扫描啊、
    发表于 01-27 06:31

    基于LabVIEW的自动测试系统中的报表生成研究

    为实现虚拟仪器系统中完备、优越的报表生成功能,对在LabVIEW平台下生成报表的问题进行了研究。在介绍讨论了常用的几种报表生成方法及相应优缺
    发表于 03-17 11:03 70次下载

    边干边学LabVIEW报表生成

    边干边学LabVIEW报表生成,word报告生成
    发表于 12-16 23:10 39次下载

    LabVIEW程序-关于生成Excel报表的程序

    LabVIEW程序,关于生成Excel报表的程序
    发表于 12-28 10:54 109次下载