使用LabVIEW读取微软Excel的数值数据.docx
《使用LabVIEW读取微软Excel的数值数据.docx》由会员分享,可在线阅读,更多相关《使用LabVIEW读取微软Excel的数值数据.docx(15页珍藏版)》请在冰豆网上搜索。
使用LabVIEW读取微软Excel的数值数据
使用LabVIEW读取微软Excel的数值数据
主要软件:
主要软件版本:
8.2.1
主要软件修正版本:
次要软件:
N/A
问题:
如何在LabVIEW中读取微软Excel电子数据表中的数值数据?
解答:
使用读取测量文件的ExpressVI:
你可以使用读取测量文件的ExpressVI从Excel电子数据表中将数值数据读取到LabVIEW中,整个过程由以下两个步骤组成:
首先将你的Excel电子数据表另存为以Tab键分割的文本文件;然后,将*.txt文件重命名为*.lvm文件。
使用读取测量文件的ExpressVI就可以将数值数据读取到LabVIEW中。
你可以参照以下的步骤:
1.打开包含了基本的数值信息的Excel电子数据表。
2.将你的Excel电子数据表另存为以Tab键分割的文本文件。
3.单击“确定”。
需要注意的是,你保存的只是活动工作表的数值数据。
4.单击“是”。
5.关闭你的Excel文档。
6.导航到你先前保存Tab键分割文本文件的目录,对你的filename.txt右击,选择“重命名”,将你的文件以.lvm的后缀命名,即命名为filename.lvm。
7.使用读取测量文件的ExpressVI,在配置窗口的文件名栏,选择filename.lvm,可以将你的数值电子数据表读取到LabVIEW中。
导航到你先前保存Tab键分割文本文件的目录,对你的filename.txt右击,选择“重命名”,将你的文件以.lvm的后缀命名,即命名为filename.lvm。
使用读取电子表格的VI:
LabVIEW的读取电子表格文件的VI不能直接读取.xls的文件,只能读取分割文本文件。
如果你是通过人工在读取电子表格的VI输入数据(不是使用LabVIEW的写入电子表格文件的VI)来创建你的Excel电子数据表的话,该VI是无法很好地解读你的.xls文件的,而且将会向你的数组返回零值。
你必须将你的excel文件保存为分割文本文件,才可以在你的LabVIEW中正确地的将该excel文件读取到你的数组中。
这个过程你可以参考上面的例子。
现在将该txt文件的路径输入到读取电子表格的文件路径节点,该VI会将正确的数据填写到你指定的数组中。
如果你只需要第一列的数据,你可以将一个True值BOOL常量连接到“转置”接线端,则该VI“第一行”输出端将输出一个数组,该数组将保存有你所需要的第一列的数据。
注释:
微软的Word和Excel是创建报表的有力的标准软件套件。
由于它们已被广泛使用,一些LabVIEW的使用者会使用LabVIEW的ActiveX接口来动态的控制这些文档处理软件,使用LabVIEW生成报表。
然后,该ActiveX编程接口的复杂性,会给程序开发者开发应用程序带来不小的难度。
为此,你可以使用LabVIEW的微软办公套件专用的报表生成工具包,这样你就无需学习微软word和excel的复杂的对象模型就可以生成报表。
报表生成工具包由一系列的灵活的、易用的VI组成,使用户可以通过LabVIEW来创建和编辑微软Word和Excel报表。
报表生成工具的产品介绍链接如下所示。
相关链接:
KnowledgeBase:
39RGHMZH:
HowdoIReadorWritetoNamedCellsorNamedRangesinExcelUsingtheLabVIEWReportGenerationToolkit?
KnowledgeBase:
28FC4SJ3:
ReadFromSpreadsheetFileVIWorksIncorrectlywithLargeNumbers
LabVIEWReportGenerationToolkitforMicrosoftOffice
附件:
ExcelTXT.PNG
用Labview怎么读取excel?
在labview中,先用writetospreadsheet模块写一个.xls文件,然后再用readfromspreadsheet读是可以实现的;但是如果用excel自己创建一个表格,存盘后后缀也是.xls的形式,再用
readfromspreadsheet读取,读到的是一串0,这是为什么?
那么用Labview怎么读取excel那?
?
有人说先把excel存成.txt文件再读,这样比较麻烦
请不吝赐教!
:
)
samuel811010发表于2006-7-120:
24
我也想知道,那位帮帮忙啊!
hukee发表于2006-7-608:
46
是因为读取的格式错了,主要是字段的分隔符(delimiter)引起的。
writetospreadsheet和readfromspreadsheetVI正好用同样的delimiter/t(tab
键)作为delimiter,所以不存在读取错误的问题。
用excel生成的文件不是用tab作为delimiter,所以存在读取错误的问题。
用excel另存为txt文件正好是tab(制表符)分隔,再读取也就ok了,呵呵。
jinfengshi_2005发表于2007-1-1220:
37
不是太明白,能不把制作的过程做成图片的形式,发给我,谢谢了!
我的邮箱是[email]jinfengshi_2005@[/email]
knhm发表于2007-1-2815:
46
可以参考labview自带的例子,位置:
C:
\ProgramFiles\NationalInstruments\LabVIEW8.2\examples\comm\ExcelExamples.llb
[转载]关于Labview里对excel的编程
(2010-06-1007:
22:
35)
转载原文
标签:
转载
原文地址:
关于Labview里对excel的编程作者:
marine
这里只讨论通过Activex的方法,因为只有这种方法,才能完全发挥Excel的所有强大的功能。
首先,Labview是有一些自带的关于Excel编程的例子的。
在findexample里search一下,有挺多的,其中有一个叫writetabletoXL.vi,我最早就是跟着它学的。
学了不少,也被误导了很久,其实也不能算误导,只是以前没花时间去研究。
最近在用Labview写一个类似ERP一样的软件,接触很多Excel表格,花了些功夫在ExcelVBA上,也算比以前有了更多的认识了。
先来看看writetabletoXL这个程序:
这个程序的目的就是把一个2维数组(表格)里的内容写到excel里。
从上图看,步骤大致是这样的,先打开excel,再打开一个workbook,然后打开worksheet,这实际上跟咱们使用excel的过程是一样的。
打开worksheet以后,它还定义了行与列的header,最后才把table里的数据写到excel里。
那个cellvalue子vi,我是从开始就用它,也像这个例子一样,每次写都是套俩forloop,然后往excel里边猛写。
最近我才发现,原来有其他的方法,可以一次性写一个二维数组进去,非常快。
其实想想也是,不至于会那么傻了。
不过也怪VBA里太多的属性和方法,不容易找。
前边的打开excelworkbook和worksheet我就不说了,例子里就有,可以新建一个workbook和sheet,也可以打开现有的,这个在excelexample.llb里都能找到。
(excelexample在哪里?
这个……,打开这些个VI,saveas一下就知道在哪里了,ok?
)
接下来说一下这几天找到的几个方法和属性。
首先是Insert,插入行或者列(就像你在excel里右键插入一样,每次只能一行或者一列,要多行的话,只能多来几次了,是这样吧?
)在说这个之前,先说下怎么找这些属性和方法,在Excel里,打开VB编辑器(工具-》宏-》VB编辑器,excel2007是在菜单开发工具下,我用的是Excel2007),打开以后看VB语言参考,重点就是里边的方法和属性,对应在Labview里边的Property和Method节点。
help里可以搜索,输入insert,可以看到很多,没办法,不熟悉只能一个一个看咯。
看到range.insert方法以后,去和Labview的比对一下。
可以看到这就是我们需要的方法了。
因为改方法是在Range下的,所以要先打开相应的range,才能用Insert,这就相当于我们在Excel里,需要在哪里插入一样的道理。
而Shift参数,看VBA里的描述,它是一个常量,是指定单元格的移动方向,点XLInsertShiftDirection就可以看到这个常量的数值,在这里我就不贴图了。
接下来讲最有成就感的发现,如何一次性读取或写入一定范围(若干行若干列)的数据?
当然不能用cell.value来写了。
有的朋友可能已经发现了。
就是用RangeValue来实现,这一点在VBA里没有写清楚,它给的例子还是相当于cellvalue一样,只是一个单元格的值,而实际上,应该是你指定的Range里所有单元格的数值。
如上图,range方法包含两个参数cell1和cell2,所以range这个范围就是cell1到cell2的范围,比如B1到C5,这不就是一个2维数组了么?
对,就是这样。
Range.value有两个,一个get,一个put,对应于读和写。
如果cell2不连,那么就是只有一个单元格的值,那么这时候出来的就不是2维数组,而是一个数,连2维数组上去就会出错了。
还有其他很多方法和属性,比如合并、拆分单元格,超链接,还有load,saveas之类的,这些都可以去参考VBA,再自己稍加研究,都是能找到的。
最后发句感叹,excel太强大了,下了个编程手册,100多M,晕!
有关于用labview读取excel文档的问题
悬赏分:
20|解决时间:
2010-11-115:
36|提问者:
xuanxi2005
问题补充:
有什么读取模块可以用来读取excel文档?
除了那个DDE对话模块之外的
最佳答案
1.安装reportgenerationtoolkit工具包,其中Excel中有个GetData.vi。
2.activex控件
3.搜索LabVIEW帮助,关键词“excel”,会获得很多信息!
参考一下:
[]LabVIEW应用-Read Excel use ActiveX
(2009-12-1114:
31:
10)
转载
标签:
原创
labview
activex
excel读取
it
分类:
[原创]LabVIEW应用
[][]在LabVIEW中利用ActiveX读取Excel数据
网络上有很多关于读取Excel的例子,但一直没有找到读取文件中整sheet的数据,所以在这里介绍一下在LabVIEW中利用ActiveX读取文件中整张表格的内容.
LabVIEW中利用ActiveX打开Excel分OpenApplication,OpenWorkbook&OpenWorksheet三个步骤,以下详细描述实现方法:
1.前面板中放下'自动化引用句柄':
引用句柄>>自动化引用句柄;
2. 前面板中右击'自动化引用句柄',在'选择ActiveX类'下选择'Excel._Application'此时'自动化引用句柄'的名称会更新'Excel._Application';
3.程序框图中放下'打开自动化':
右击'Excel._Application'>>'ActiveX选板'>>'打开自动化';
4.将'Excel._Application'连线至'打开自动化'的左侧自动化引用句柄端;
5.程序框图中放下'属性节点';(同步骤3)
6.将'打开自动化'的右侧自动化引用句柄端连线至'属性节点'的引用端;
7.单击'属性节点'的属性,在下拉列表中选择'Workbooks';
8.程序框图中放下'调用节点';(同步骤3)
9.将步骤7中的'Workbooks'连线至'调用节点'的引用端;
10.单击'调用节点'的方法,在下拉列表中选择'Open';
11.在'Open'的'Filename'输入端连接所需打开Excel文件的路径;
12.同步骤5,放下'属性节点',其引用端连接'Open',然后单击'属性节点'的属性,在下拉列表中选择'Worksheets';
13.同步骤8,放下'调用节点',其引用端连接'Worksheets',然后单击'调用节点'的方法,在下拉列表中选择'Item';
14.在'Item'的'Index'输入端创建'输入控件',此'输入控件'代表Excel中的sheet#;(例如需要打开文件中的sheet2,可直接连接num2至'Index'输入端)
15.程序框图中放下'变体至数据转换'(同步骤3),将其变体端连接至'Item';
16.同步骤1,在前面板中再次放下'自动化引用句柄',然后如步骤2方式在'选择ActiveX类'下选择'Excel._Worksheet';
17.程序框图中,将'Excel._Worksheet'连线至'变体至数据转换'的类型端;
18.同步骤5,放下'属性节点',其引用端连接'变体至数据转换'的数据端,然后单击'属性节点'的属性,在下拉列表中选择'UsedRange';
19.同步骤8,放下'调用节点',其引用端连接'UsedRange',然后单击'调用节点'的方法,在下拉列表中选择'Value(获取)';
20.同步骤15,放下'变体至数据转换',其变体端连接至'Value';
21.只要在'变体至数据转换'的类型端连接一个二维的字符型数组常量,就可以在数据端获取表格中的数据了;(连贯的程序如下)
22.程序的最后需要CloseApplication,CloseWorkbooks&CloseWorksheets来关闭调用;
[]实例应用
在写一个数据整理工具中用到的事例:
Data的文件类型可以是.csv或者.xls,其中.csvfile可以通过LabVIEW中的'读取电子表格文件'工具直接读取,而.xls则需要用到ReadExcel子VI来实现.实例框图如下:
[前面板]
[程序框图]
[]结束
我把一个波形的数据存储到一个excel文件中,这个excle文件中的第一列是这个波形的时间值,第二列是对应时间的波形值,我想通过利用Readfromspreadsheetfile.vi把这个文件读取出来,然后通过转换把读到的数据恢复出原本的波形,既最后的输出是一个波形,XYGraph,请问这该怎么弄呢?
有知道怎么做的麻烦请告诉小弟下,谢谢了!
!
(我把我的excel波形数据文件制作成一个压缩包作为附件上传上来了)。
123.rar
2010-4-2121:
09上传
下载次数:
4
60.83KB,下载次数:
4
excel波形数据文件
收藏0分享0顶00
LabVIEW+单片机学习套件全套资料下载[免费]
点评回复引用
使用道具举报返回顶部
∙
提升卡
∙
沉默卡
∙
喧嚣卡
∙
变色卡
∙
抢沙发
∙
恢复卡
∙
∙
gigio
∙发短消息
∙加为好友
狗仔卡
gigio当前离线
在线时间
1小时
注册时间
2009-4-10
最后登录
2010-11-3
阅读权限
90
帖子
409
精华
0
积分
3390
UID
117123
论坛元老
论坛元老,积分3390,距离下一级还需9996609积分
2#
发表于2010-4-2201:
24|只看该作者
高性价比以太网数据采集卡NET0816集成加密狗
Readfromspreadsheetfile.vi输出二维数组,xygraph需要二组数据,提取出来不是正好咯