一、Excel的读取
1、利用Labview自带VI读取Excel
首先打开报表生成函数选板
选择创建报表,窗口状态和报表类型创建常量,模板创建输入控件,三个接线端分别表示窗口状态(normal,minmized,maxmized,no change)、报表类型(HTML、Excel、Word)、报表输入路径。
添加Excel Get Work Sheet.vi ,VI位置如下图所示
WorkSheet index(0) 创建常量或输入控件,该接线端表示获取Excel中哪一个Sheet页。
注:从0开始索引。
添加Excel Get Data.vi,位置同Excel Get Work Sheet.vi
Data Type 创建二维字符串数组常量,data 创建显示控件,整体程序框图如下图所示
前面板运行结果,成功将Excel读取为二维字符串数组
2、利用ActiveX读取Excel
创建自动化引用句柄
选择ActiveX类,选择Microsoft Excel 16.0 Object Library库, 对象选择Application (Excel.Application.12),点击确定后生成Excel_Application
添加打开自动化,位置如图所示
创建属性节点,属性选择Workbooks。
创建调用节点,方法选择Open。
Filename 字符串路径输入,所以我们要将路径类型转换为字符串类型。
创建属性节点,属性选择Worksheets;创建调用节点,方法选择Item;Index为Sheet页索引,在此处创建常量或输入控件,数据类型为I32。
注:此处从1开始索引。
创建变体至数据转换,位置如图所示;
创建自动化引用,库类型同Excel_Application,对象选择Worksheet,连接到类型
创建属性节点,属性选择UseRange;创建调用节点,方法选择Value(获取);
创建变体至数据转换,类型创建二维字符串数组常量,数据创建显示控件。
整体程序框图
前面板运行,成功读取Excel数据。
3、ActiveX读取Excel的引申
此程序同上述程序不同的地方在于利用For循环将Excel中所有Sheet索引出来并生成三维数组。
关于-2147352571错误的说明,参考(juejin.cn/post/710222…)
二、Excel的写入
1、数据存储路径的获取
当我们使用Labview记录测试数据时,我们首先要考虑的不是如何写入Excel,而是要考虑写在哪里。 所以Excel的写入,我们首先要从创建数据存储文件夹开始。
首先我们要获取一个路径,通常我们的测试数据一般会保存在VI相同的路径,如图所示,找到当前VI路径控件。
配合拆分路径控件,我们就得到了当前VI所在的路径数据。
然后我们使用创建路径控件,我们就获得了我们想创建的文件的路径。
创建文件夹前我们需要先检查文件夹是否存在,这里我们用到了检查文件或文件夹是否存在控件和条件结构。
检查路径当结果为真时,输出路径;结果为假时,创建文件夹并输出路径。
在文件夹的路径下创建我们测试数据所在的路径。
使用打开/创建/替换文件控件来实现测试文件的创建。
整体程序框图如下图所示。
运行此程序我们就获得了一个以日期为命名的Excel文件,至此我们就获得了测试数据存储的文件夹和Excel文件,接下来我们就可以将测试数据写入到Excel文件。
注:上述当前VI路径控件,它的作用时获取当前VI所在的路径,当我们将VI打包成EXE时,当前VI路径控件会失效,这时我们使用应用程序目录控件
来替代。
2、字符串写入Excel
利用设置文件位置控件先设置写入文件的位置。
自(0:起始) 接线端处创建常量,选择end,通过该控件我们设置文件写入位置为文件的end,即每次写入都从文件末尾开始写入。
创建写入文本文件控件,我们通过该控件向Excel写入数据,注意同一行每个元素之间需添加制表符常量,换行则需使用行结束常量。
整体程序框图
程序运行结果
3、数组写入Excel
对于将数组写入Excel,我们只需将上述字符串写入Excel稍微修改即可。
首先我们先随便创建一个二维字符串数组常量,并利用字符串控件中的数组至电子表格字符串转换控件,将我们要写入Excel的的二维字符串数组转换为带制表符的字符串,然后再通过写入文本文件控件写入即可。
。
整体程序框图
程序运行结果
4、利用Labview自带VI将数组写入Excel
在文件I/O中找到写入带分隔符电子表格控件,并替代上述设置文件位置控件和写入文本文件控件。
整体程序框图
由于打开/创建/替换文件控件输出的文件类型为引用句柄,而写入带分隔符电子表格控件需要路径类型数据输入,所以我们需要将引用句柄转换至路径
,同时由于替换了设置文件位置控件,写入带分隔符电子表格控件写入数据时会覆盖之前写入的数据,如果想保存之前写入的数据,需将添加至新文件? 接线端接入真常量。
程序运行结果