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
    +关注

    关注

    1971

    文章

    3654

    浏览量

    323650
  • 编程
    +关注

    关注

    88

    文章

    3616

    浏览量

    93738
  • Excel
    +关注

    关注

    4

    文章

    218

    浏览量

    55527
  • 报表
    +关注

    关注

    0

    文章

    18

    浏览量

    9374

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

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

收藏 人收藏

    评论

    相关推荐

    LABVIEW报表创建工具遇到的个问题,麻烦大佬帮忙看

    报表插入之后打开EXCEL选定的保存位置会提示如下 此时无论点是或者否保存的数据都会消失,仔细观察之后发现创建报表创建的EXCEL进程,无法被处置
    发表于 10-09 10:03

    labview创建DIAdem报表的具体方法

    份用labview创建DIAdem报表的具体方法
    发表于 11-27 14:31

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

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

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

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

    Labview创建新的excel报表

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

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

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

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

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

    关于单形体积的一些不等式

    应用距离几何理论与解析方法,研究了一些单形体积之间的关系,建立了关于单形体积的一些新的不等式,作为其特例,获得垂足单形体积的个不等式和单形
    发表于 11-20 11:55 14次下载

    关于电池的一些疑问解答

    关于电池的一些疑问解答 (1)电池不用时,低温冷藏,正确吗?  错误,将电池低温冷藏并不能够延长电池的使用寿命
    发表于 11-13 14:25 584次阅读

    关于红外通信的一些问题知识点

    关于红外通信的一些问题知识点。
    发表于 05-05 17:40 4次下载

    关于PID一些常用知识

    本文档详细介绍分析了关于PID的一些常用知识
    发表于 08-29 14:22 2次下载

    边干边学LabVIEW报表生成

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

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

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

    一些对OpenMP进行优化的方法

    本文调研了一些对OpenMP进行优化的方法
    的头像 发表于 10-18 09:44 1738次阅读

    关于数码管的一些知识笔记

    “写写关于数码管的一些知识笔记”
    的头像 发表于 06-28 11:29 3590次阅读
    <b class='flag-5'>关于</b>数码管的<b class='flag-5'>一些</b>知识笔记