LabVIEW中向Excel写入数据

合集下载

在LABVIEW中实现对数据库表格的操作

在LABVIEW中实现对数据库表格的操作

在LABVIEW中实现对数据库表格的操作摘要:利用LabVIEW 数据库工具包只能操作而不能创建数据库,所以必须借助第三方数据库管理系统,比如Access,来创建数据库。

本文试图通过LABVIEW对数据库进行操作,在LABVIEW中建立学生成绩查询系统。

关键词:引言:现今,数据库技术已经发展的比较成熟了,著名的数据库管理系统有SQL Server、Oracle、DB2、Sybase ASE、Visual ForPro、Microsoft Access等。

Microsoft Access是在Windows 环境下非常流行的桌面型数据库管理系统,它作为Microsoft office组件之一,安装和使用都非常方便,并且支持SQL 语言,所以本文将基于Access 来介绍LABVIEW在数据库中的的操作。

在利用NI公司的附加工具包中的数据库接口工具包LabVIEW SQL Toolkit进行数据库访问。

该工具包集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能。

它的优点是易于理解,操作简单,用户可以不学习SQL语法。

LabVIEW SQL Toolkit(又被称作为LabVIEW Database Connectivity Toolset)是用于数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能[10]。

其主要的功能如下:(1)支持ADO所支持的所有的数据库引擎;(2)支持所有与ODBC或OLE DB兼容的数据库驱动程序;(3)具有高度的可移植性,在任何情况下,用户通过改变DB Tools Open Connection VI的输入参数Connection String就可以更换数据库;(4)可以将数据库中Column Values的数据类型转换为标准LabVIEW Database Connectivity Toolset的数据类型,这进一步增强了它的可移植性;(5)与SQL兼容;(6)不使用SQL语句就可以实现数据库记录的查询、添加、修改以及删除等操作;(7)用户可以完全不需要学习SQL语法。

LabVIEW中向Excel写入数据

LabVIEW中向Excel写入数据

LabVIEW中向Excel写入数据这里只讨论通过Activex的方法,因为只有这种方法,才能完全发挥Excel的所有强大的功能。

首先,Labview是有一些自带的关于Excel编程的例子的。

在find example里search一下,有挺多的,其中有一个叫write table to XL.vi,我最早就是跟着它学的。

学了不少,也被误导了很久,其实也不能算误导,只是以前没花时间去研究。

最近在用Labview写一个类似ERP一样的软件,接触很多Excel表格,花了些功夫在Excel VBA上,也算比以前有了更多的认识了。

先来看看write table to XL这个程序:这个程序的目的就是把一个2维数组(表格)里的内容写到excel里。

从上图看,步骤大致是这样的,先打开excel,再打开一个workbook,然后打开worksheet,这实际上跟咱们使用excel的过程是一样的。

打开worksheet 以后,它还定义了行与列的header,最后才把table里的数据写到excel里。

那个cell value子vi,我是从开始就用它,也像这个例子一样,每次写都是套俩for loop,然后往excel里边猛写。

最近我才发现,原来有其他的方法,可以一次性写一个二维数组进去,非常快。

其实想想也是,不至于会那么傻了。

不过也怪VBA里太多的属性和方法,不容易找。

前边的打开excel workbook和worksheet我就不说了,例子里就有,可以新建一个workbook和sheet,也可以打开现有的,这个在excelexample.llb里都能找到。

(excelexample在哪里?这个……,打开这些个VI,saveas一下就知道在哪里了,ok?)接下来说一下这几天找到的几个方法和属性。

首先是Insert,插入行或者列(就像你在excel里右键插入一样,每次只能一行或者一列,要多行的话,只能多来几次了,是这样吧?)在说这个之前,先说下怎么找这些属性和方法,在Excel里,打开VB编辑器(工具-》宏-》VB 编辑器,excel2007是在菜单开发工具下,我用的是Excel2007),打开以后看VB语言参考,重点就是里边的方法和属性,对应在Labview里边的Property和Method节点。

labview写入电子表格

labview写入电子表格

竭诚为您提供优质文档/双击可除labview写入电子表格篇一:labView怎么利用activex读取excel数据[][]在labView中利用activex读取excel数据网络上有很多关于读取excel的例子,但一直没有找到读取文件中整sheet的数据,所以在这里介绍一下在labView 中利用activex读取文件中整张表格的内容.labView中利用activex打开excel分openapplication,openworkbook自动化引用句柄:引用句柄>>自动化引用句柄;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,放下调用节点,其引用端连接usedRan(labview写入电子表格)ge,然后单击调用节点的方法,在下拉列表中选择Value(获取);20.同步骤15,放下变体至数据转换,其变体端连接至Value;21.只要在变体至数据转换的类型端连接一个二维的字符型数组常量,就可以在数据端获取表格中的数据了;(连贯的程序如下)22.程序的最后需要closeapplication,closeworkbooks[]实例应用在写一个数据整理工具中用到的事例:data的文件类型可以是.csv或者.xls,其中.csvfile可以通过labView中的读取电子表格文件工具直接读取,而.xls则需要用到Readexcel子Vi来实现.实例框图如下:[前面板]篇二:使用labView读取excel的数值数据使用labView读取excel的数值数据一、题目概述:这是一个基于labview读取excel的数值数据的程序。

005.在LabwindowsCVI中调用Excel的几种方法

005.在LabwindowsCVI中调用Excel的几种方法

最近需要实现在CVI中对Excel文件的读写,参考了几篇论文后,总结下基本上有3种方法:1.DDE(Dynamic Data Exchange);2.ADO(ActiveX Data Objects);3.Microsoft Excel xx.0 Object Library.DDE真是不知道那个角落里的东西,从传说中的Windows 3.x开始就有,直到最新版的Excel还支持这种方法。

资料少的可怜,MSDN上有两篇关于用DDE调用Excel的文章。

根据我的测试,这方法首先是用无论哪种方式打开Excel主程序,然后再对Excel进行连接,连接后通过通用的DDE函数进行数据传递。

我写的程序没有成功,主要在连接的时候经常连接失败,最后在打开Excel程序后加了很多延迟,问题好了很多,但有时候还是莫名其妙的连接失败。

在Excel的写入和读取上,尽管我已经把程序写的和一篇论文很像,但总是出现同一个错误,折腾了几下就放弃这种方法了。

鉴于DDE是接近淘汰的技术,其连接也不可靠,所以不建议使用这种方法。

Microsoft Excel xx.0 ObjectLibrary貌似资料很多,但是鉴于CVI的用户数量,还是别指望太多,MSDN上有VB和C#的实例,如果我没记错的话.至于CVI中的库,真不知道是谁写的,哪都找不到帮助,MSDN上有完整的VB下的手册可以参考,如果装过完整版的Office的话好像会有个中文版的。

用这东西真叫一个烦,大部分函数得看着VB 下的手册猜着怎么用,步骤很繁琐。

用它好处是,几乎可以实现Excel 的所有功能,操作顺序跟实际操作Excel有点像,缺点除了编程繁琐外,就是其版本严格的一一对应,Microsoft Excel 11.0 ObjectLibrary对应的就是Excel 2003,版本高了、低了都不行,甚至有同版本不同Service Pack都不能兼容的情况。

ADO+微软的Jet,可以实现把Excel映射成数据库,用SQL语言来操作Excel。

labview文件的输入输出

labview文件的输入输出

波形文件I/O子模块
文件I/O函数子模板
1 写电子表格文件(Write to Spreadsheet File) 该节点把一个二维或一维单精度浮点数数组写
到一个电子表格文件中。节点图标及连接端口如 下图:
如果文件存在,则既可以把数据追加到该文件, 也可以覆盖原有的数据;如果文件不存在,则创 建新文件。此节点在读取数据前打开文件,读取操作完
无法被一般的字处理软件如Word读取,通用性较 差。
(4)数据记录文件
一种二进制文件
它把数据组织为具有相同结构的记录,每一行为一个记 录,每个记录都具有相同的数据结构。LabVIEW把每
一个记录作为一个簇写入文件 。
(5)波形文件
波形文件是一种特殊的数据记录文件,它记录了波形数 据特有的一些信息,如波形的起始时间、采样的间隔时 间等。
在保存文本文件前,首先要将数据转换为字符串,然后再用相关的函数将字符串写 入到文件中。
2 读取文本文件(Read From Text File) 从一个文本文件中读取字符,操作完成后自动 关闭该文件。节点图标及连接端口如下图:
例 3 由序号i和一个随机数构成的文本文件。
运行该程序后,在E盘生成f1的文本文件。用 记事本打开这个文件,可以该数据序列。
例 5 二进制文件保存
例6 二进制文件读取
数据记录文件 数据记录文件实际也是一种二进制文件,输
入的数据类型可以是任何数据类型。操作方法 与二进制文件基本相同。不同的是数据记录文 件必须用它的专用操作函数。在FILE I/O| Advanced File Functions|Datalog下
没有专门用于存储数据记录文件的VI。 需要依靠基本分立函数来实现数据存储。
格式转换,因而需要花费额外的时间; 第三,不能随机地访问其中的某个数据,

labview中excel easy text无法运行的处理方式

labview中excel easy text无法运行的处理方式

labview 中excel easy text 无法运行的处理方式不知道从何时起,也许是从重装系统起,excel easy text 就不能执行了,我一直苦于寻求答案,今天在ni 上看到一个原因解答如下面所示:如果是程序执行了一段时间之后错误出现,这个很有可能是由于电子表格的大小达到限制。

在2007 版本之前微软的电子表格限制列数是256 列,行数是65536 行,之后的版本这个限制增加到列数是16384 列,行数是1 百万行。

如果超过这个限制,电子表格就试图访问允许范围外的行或列时,这个错误会出现。

错误- 2146827284 来自Excel_Get_Range VI。

如果限制没有被检测的话,那么在while 循环中往电子表格写数据很快就会超出限制。

报表生成工具包开始支持2007 的1.1.2 版本的办公软件。

以上的解释似乎有道理可是没有解决方式,因此我在gsdzone 上面看到了同样的问题,然后看到版主给出了自己的答案,如下描述:自己到这个函数里,看看哪里出问题了。

因为是调用的Activex,一般可能是属性节点不兼容什么的,自己从新弄下,保存。

这个方案让我想到了以前的也是通过这种方式解决了这样一个问题,下面我们看看这个问题的解决过程:1.双击excel easy text 模块进入2.点击运行按钮弹出错误对话框提示信息,发现问题出在excelset cell color and border 这个模块中,再双击进入该模块,运行后出现错误提示框,进入后面板程序发现有连线点未连线下面是出问题的部分也就是这里有的调用没有连接输入的问题。

但是给color 和linestyle 都加上常量输入后仍然是这个问题,然后根据前面的inside border 输入后的程序来改进,也就是把I32 输出值加在color 上面,如下图所示:。

LabVIEW与Excel的通信方法

LabVIEW与Excel的通信方法

LabV I EW 中的 DDE 是 W indow s操作系统中的一种基于消息的协议。利用 LabV I EW 的 DDE 功能可以很好地实现 LabV I EW 与 Ex ce l 的数据通信。通过具体例子叙述了 LabV I EW 的 DDE 功能, 这种功能使得 LabV I EW 与 Exce l的数据交换方便快捷, 实现方法简单明 了 , 实践表明 DDE 是增强 LabV I EW 整体功能的一条有效途径。 关键词 : 虚拟仪器 通信 动态数据交换 文献标识码 : A 中图分类号 : TP311 . 13
图 4 通道数据 . x ls 文件 F ig . 4 Channel da ta . x ls file 图 3 向 Exce l写数据界面 F ig . 3 Inte rface o f w rite data to Ex cel
首 先, 用 DDE O pen Conversation. v i建立 LabV IE W 与 Excel的连接, 给这个 v i的 serv ice 端口 参数输 入服 务名称为 Excel , 给 它的 top ic 端 口参 数输 入交换 数 据的文件名 通道数据. x ls 。
本文通过一个实例阐述了 LabV IEW 与 Excel的通
图 5 从 Ex ce l读数据界面 F ig. 5 Inte rface o f read data from Excel
信方 法。 DDE 功 能使 得 LabV I EW 与 Excel的 数据 交 换方便快捷, 实现方法简单 明了。以上例 子的 v i程序 在 L abV I EW 6 1 和 M icroso ft Excel 环 境 下 以 及 中 文 W indow s98环境中运行通过。

LabWindowsCVI中调用Excel

LabWindowsCVI中调用Excel

LabWindows/CVI中调用Excel设计要求:1.启动Microsoft Excel并打开xls文件;2.向xls文件中写入数据;3.根据所填入的数据完成画图功能;4.Xls具有存盘,关闭等功能;5.关闭Microsoft Excel。

利用ActiveX技术进行Excel访问。

ActiveX技术以微软的COM技术为基础,也称之为ActiveX自动化。

ActiveX是一种软件组件,它可以插入到不同的应用程序中,并被当作程序的一部分来使用。

利用ActiveX可以把两个或两个以上的应用程序组合在一起,使其像应用程序一样工作,或者可以在同一应用程序外壳中进行不同应用程序间的切换。

生成自动化仪器驱动器在LabWindows/CVI的工程主窗口中选择Tool/Create ActiveXController,弹出ActiveX Controller Wizard对话框,点击Next进入自动化服务器选择对话框,如图1所示。

选择Microsoft Excel 12.0 Object Library,点击Next进入服务器配置对话框,如图所示。

ActiveX Server 表示已选中的ActiveX服务器名称,Instnmmnt Prefix表示生成驱动器的前缀,可以设置为空或键人有效的C语言标识符,若不输入任何字符,系统会默认产生一个有效的文件名,一般情况下不用修改此属性。

Target.fp File表示CVI产生的.fp文件在磁盘中的存储路径,点击Browse可以查找或定位一个.fp文件。

将Add.fp File To Project选中表示允许把所产生的.fp文件加入当前工程中。

点击Compatibility Options进入兼容选项对话框,通过该对话框选项可以保持所产生的代码源文件与已经存在的ActiveX仪器驱动的向后兼容性,系统默认为Per Property。

点击Next进入高级选项对话框,在高级选项对话框中,点击Advanced Option 将显示高级函数配置对话框,可以通过此对话框来增减ActiveX对象及修改对象的名称和标识符,高级函数一般采用默认配置即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LabVIEW中向Excel写入数据
这里只讨论通过Activex的方法,因为只有这种方法,才能完全发挥Excel的所有强大的功能。

首先,Labview是有一些自带的关于Excel编程的例子的。

在find example里search一下,有挺多的,其中有一个叫write table to XL.vi,我最早就是跟着它学的。

学了不少,也被误导了很久,其实也不能算误导,只是以前没花时间去研究。

最近在用Labview写一个类似ERP一样的软件,接触很多Excel表格,花了些功夫在Excel VBA上,也算比以前有了更多的认识了。

先来看看write table to XL这个程序:这个程序的目的就是把一个2维数组(表格)里的内容写到excel里。

从上图看,步骤大致是这样的,先打开excel,再打开一个workbook,然后打开worksheet,这实际上跟咱们使用excel的过程是一样的。

打开worksheet 以后,它还定义了行与列的header,最后才把table里的数据写到excel里。

那个cell value子vi,我是从开始就用它,也像这个例子一样,每次写都是套俩for loop,然后往excel里边猛写。

最近我才发现,原来有其他的方法,可以一次性写一个二维数组进去,非常快。

其实想想也是,不至于会那么傻了。

不过也怪VBA里太多的属性和方法,不容易找。

前边的打开excel workbook和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来写了。

有的朋友可能已经发现了。

就是用Range Value来实现,这一点在VBA里没有写清楚,它给的例子还是相当于cell value一样,只是一个单元格的值,而实际上,应该是你指定的Range 里所有单元格的数值。

如上图,range方法包含两个参数cell1和cell2,所以range这个范围就是cell1到cell2的范围,比如B1到C5,这不就是一个2维数组了么?对,就是这样。

Range.value有两个,一个get,一个put,对应于读和写。

如果cell2不连,那么就是只有一个单元格的值,那么这时候出来的就不是2维数组,而是一个数,连2维数组上去就会出错了。

还有其他很多方法和属性,比如合并、拆分单元格,超链接,还有load,saveas之类的,这些都可以去参考VBA,再自己稍加研究,都是能找到的。

最后发句感叹,excel太强大了,下了个编程手册,100多M,晕!
枯藤老树昏鸦,小桥流水人家,古道西风瘦马。

夕阳西下,断肠人在天涯。

相关文档
最新文档