概览
目录
LabVIEW生成Excel的方法比较表格
导出 | TDMS文件 | CSV文件 | 报告生成 | DIY ActiveX | NI DIAdem | |
交互式 | √ |
|
|
|
| √ |
以编程方式 | √1 | √ | √ | √ | √ | √ |
自定义格式化 |
|
|
| √ | √ | √ |
未安装Excel时 |
| √ | √ |
|
| √ |
自动保存元数据 |
| √ |
|
|
| √ |
需要额外的软件 |
| √2 |
| √3 |
| √4 |
基于文件的传输 |
| √ | √ |
|
| √ |
自动化接口传输 | √ |
|
| √ | √ | √ |
1 数据可以以编程方式发送到Excel,但保存文件需要手动操作
2需要用于Microsoft Excel的TDM Excel加载项 - 可以免费下载并与最新版LabVIEW一起安装
3需要安装用于Microsoft Office的NI LabVIEW报表生成工具包
4需要安装DIAdem
导出到Excel右键菜单
将可见数据从LabVIEW导入到Excel的最简单方法是:右击前面板上显示有要导出的数据的显示控件,然后选择"导出数据到Excel"。
导出数据到Excel方法支持任何图形、图表、表格、数组或数字数据控件。 图形和图表仅导出可见数据,这意味着您可以使用图形工具来放大感兴趣的区域,并仅导出需要的数据。 表格仅导出当前选中的数据,而数组则可导出数组中的所有数据。
您还可以使用调用节点,以编程方式调用导出数据到Excel和导出绘图数据到Excel方法。 以下代码片段可生成正弦波,然后将绘图数据输出到Excel两次,以显示两种不同的方法。 两种方法之间的区别是导出绘图数据到Excel方法仅导出指定图的数据,而导出数据到Excel方法则导出所有图的数据。 这个简单的例子只有一个图,所以这两个方法产生的结果相同。
使用这种技术时,请注意,Excel必须安装在与LabVIEW相同的机器上,并且无法通过编程来保存Excel文件。 因此,这种方法最适合于需要交互式调查数据并快速将数据发送到Excel进行分析或发布的应用。
注意: "导出到Excel功"功能从LabVIEW 2010版开始提供,此前的版本均不具备该功能。
保存为TDMS文件
NI开发了技术数据管理流(TDMS)文件格式来快速、高效地保存文档化的测量数据。 虽然TDMS本身不支持Excel,但是您可以使用一个免费的Excel加载项将数据导入Excel。
创建TDMS文件最简单的方法是使用文件I/O选板中的 Write To Measurement File Express VI。
与所有Express VI一样,将VI放在程序框图上时,会看到一个配置对话框。这个特定的Express VI可以不仅仅只是保存为TDMS,所以一定要在文件格式部分中选择二进制(TDMS)。 保存文件的方式有多种,当选定文件已经存在时的做法也有多种选择。
您可以通过点击设置...按钮,使用基于时间或文件大小的计划表保存到一系列文件。
这时会产生一个非常简单的程序框图:
对于更习惯手动控制的用户,LabVIEW还提供了一个用于写入TDMS文件的API,而无需使用Express VI。
如果有数据存储到TDMS文件中,则需要确保您已安装用于Microsoft Excel的TDM Excel加载项。 安装LabVIEW时,您可能已经安装了该加载项,如果没有,您可以随时免费下载。 安装加载项后,您可以直接在TDMS文件上单击鼠标右键,然后选择 打开方式»Excel导入器,这时会打开Excel并显示相应的数据。
Excel中的第一个工作表包含了文件属性和其他元数据。
每组通道都作为单独的工作表进行加载,每个通道的数据都显示在各自列中。
数据导入到Excel后,就不会依赖或链接回原始的TDMS文件(但原始文件可以使用LabVIEW或DIAdem中的ExcelTDM DataPlugin重新创建),因此您可以随意与任何Excel用户共享您的工作簿。
保存到CSV文件
大多数情况都支持逗号分隔值(CSV)文件格式,因此您可以在Excel中打开文件,但也可以将其导入到其他电子表格、数据库或分析工具。 CSV文件是人类可读的文本文件,列与列之间通过逗号隔开,行与行之间则通过换行隔开。 这通常需要我们在LabVIEW中进行一些数据操作,以便将测量数据转换为适当的格式,因为我们无法使用复杂的数据类型(如波形),也不能将数值存储更高效的二进制格式,以便LabVIEW或TDMS文件内部使用。
您可以使用文件I/O选板中的Write To Spreadsheet File VI来创建要在Excel中打开的CSV文件。
简单的一维数组并不需要进行任何额外的处理。默认情况下,Write To Spreadsheet File VI使用制表符(/t)作为分隔符,因此您只需要指定逗号(,)作为分隔符即可。
一个更复杂的例子是将Express VI返回的数据(如DAQ助手或模拟信号)写入CSV文件中,并标记时间,同时在下一列显示测量值。 下面的代码片段显示了如何将动态数据转换为波形数组; 然后将数组中每个波形的所有测量值转换为字符串; 接着再为每个样本制定一个时间字符串; 并最终为这些字符串创建二维数组,以便传递给Write To Spreadsheet File VI。
您可以使用Excel打开CSV文件,这时会看到数据按列和行正确分割。
如果您使用上面的代码片段,Excel将会理解您的时间戳,但可能无法以有用的方式进行格式化 - Excel是为商业办公而开发的,通常无法在数秒甚至更短的时间内处理数据。 要解决这个问题,您必须使用自定义格式来格式化包含时间数据的单元格,如下所示。
这种方法的一个缺点是此格式化信息无法保存在CSV文件中,因此每次将新文件导入Excel时都必须手动重复该过程。 虽然只能在Excel中打开一次,但您仍可以将数据保存为Excel文件来保留格式,以便后续使用。
Microsoft Office报表生成工具包
在将数据发送到Excel时,用于Microsoft Office的NI LabVIEW报表生成工具包提供了很大的灵活性。 最大的优点之一是您可以在Excel中创建一个模板工作簿,并将其保存为.xltx或.xlt文件,然后使用LabVIEW在VI运行时使用数据填充模板。 此代码段显示如何使用MS Office Report Express VI填充此类模板。
创建模板时,您可以像任何其他Excel工作簿一样自定义格式。 然后将单元格命名为数据要放置的位置(对于表格或数组,您只需要命名左上方的单元格即可)。
创建模板后,将Express VI指向模板,并告诉LabVIEW您希望数据如何显示在报表中(以表格或图表形式显示)以及是否要打开、保存或打印Excel文件。
运行上面的代码片段会产生如下所示的输出。 这个简单的例子介绍了这种方法的使用 - 顾名思义,报表生成工具包通常用于自动化生成完整的报表,而不是将简单的数据发送到Excel。
除了Express VI之外,报表生成工具包还提供了一个可用于自动化Excel的完整API。 下面的示例代码产生的输出类似于上述示例,但不需要模板工作簿。 此外,该示例不是使用LabVIEW图形的图像,而是使用Excel图表工具绘制图形。
运行上面的例子得到以下输出:
DIY ActiveX/.NET
报表生成工具包基于Excel ActiveX接口。 您可以通过直接ActiveX调用或Microsoft.Office.Interop.Excel .NET程序集自动创建Excel文件来使用此API。 下面的代码片段生成与Report Generation Toolkit示例基本相同的结果,但是使用的是.NET互操作程序集来与Excel进行通信。 可以看到,代码最后更为复杂,但任何有ActiveX/.NET编程背景的人员都不会觉得陌生。
以下是上述代码片段的输出:
DIAdem作为替代选择
如果您有更高级的数据需求,比如较大型的数据集、大量的文件或特定的报告需求,还可考虑DIAdem。 DIAdem是一款用于快速定位、分析和报告测量数据的工具,通常更能够满足工程师对数据工具的许多需求。
如需了解更多关于使用DIAdem而不是Excel提高工作效率的信息,请阅读本文。
Reference
--------
- 本文转载至NI官方文章,如有侵权请联系admin删除,来源地址:https://www.ni.com/newsletter/51339/zhs/
- 技术探讨可联系support www.ni.com将NI LabVIEW软件中的数据移动到Microsoft Excel有许多不同的方法。 每种方法都有优缺点,因此我们将探讨一些可用的选项,以帮助您找到适合您应用的选项。
No comments:
Post a Comment