LabVIEW中向Exce l写入数据
这里只讨论通过Active x的方法,因为只有这种方法,才能完全发挥E xcel的所有强大的功能。 首先,Labview是有一些自带的关于Exc el编程的例子的。在find example里searc h一下,有挺多的,其中有一个叫w rite table to XL.vi,我最早就是跟着它学的。学了不少,也被误导了很久,其实也不能算误导,只是以前没花时间去研究。最近在用Lab view写一个类似ERP一样的软件,接触很多Exc el表格,花了些功夫在E xcel VBA上,也算比以前有了更多的认识了。
先来看看wri te table to XL这个程序:这个程序的目的就是把一个2维数组(表格)里的内容写到e xcel里。
河南科技学院学报
布鲁尼
从上图看,步骤大致是这样的,先打开exce l,再打开一个wo rkbook,然后打开wor ksheet,这实际上跟咱们使用exce l的过程是一样的。打开works heet 以后,它还定义了行与列的head er,最后才把tab le里的数据写到exce l里。那个cellvalue子v i,我是从开始就用它,也像这个例子一样,每次写都是套俩for loop,然后往exce l里边猛写。最近我才发现,原来有其他的方法,可以一次性写一个二维数组进去,非常快。其实想想也是,不至于会那么傻了。不过也怪VBA里太多的属性和方法,不容易。浏阳霉素
缓解生猪市场价格周期性波动调控预案前边的打开ex cel workboo k和work sheet我就不说了,例子里就有,可以新建一个w orkboo k和shee t,也可以打开现有的,这个在exce lexamp le.llb里都
能到。(excelex ample在哪里?这个……,打开这些个VI,saveas一下就知道在哪里了,ok?)
接下来说一下这几天到的几个方法和属性。首先是Inse rt,插入行或者列(就像你在exc el里右键插入一样,每次只能一行或者一列,要多行的话,只能多来几次了,是这样吧?)在说这个之前,先说下怎么这些属性和方法,在Excel里,打开VB编辑器(工具-》宏-》VB 编辑器,excel2007是在菜单开发工具下,我用的是Exc el2007),打开以后看VB语言参考,重点就是里边的方法和属性,对应在Labv iew里边的Proper ty和Met hod节点。help里可以搜索,输入inser t,可以看到很多,没办法,不熟悉只能一个一个看咯。看到range.insert方法以后,去和Labvi ew的比对一下。 FOS
camgoo
可以看到这就是我们需要的方法了。因为改方法是在Range下的,所以要先打开相应的rang e,才能用Inse rt,这就相当于我们在Excel里,需要在哪里插入一样的道理。而Shift参数,看VBA里的描述,它是一个常量,是指定单元格的移动方向,点XLInse rtShif tDirec tion就可以看到这个常量的数值,在这里我就不贴图了。
接下来讲最有成就感的发现,如何一次性读取或写入一定范围(若干行若干列)的数据?当然不能用ce ll.value来写了。有的朋友可能已经发现了。就是用Rang e Value来实现,这一点在VBA里没有写清楚,它给的例子还是相当于cel l value一样,只是一个单元格的值,而实际上,应该是你指定的Range里所有单元格的数值。
如上图,range方法包含两个参数cell1和cell2,所以range这个范围就是cell1到cell2的范围,比如B1到C5,这不就是一个2维数组了么?对,就是这样。 Range.value有两个,一个get,一个put,对应于读和写。如果cell2不连,那么就是只有一个单元格的值,那么这时候出来的就不是2维数组,而是一个数,连2维数组上去就会出错了。
还有其他很多方法和属性,比如合并、拆分单元格,超链接,还有load,saveas之类的,这些都可以去参考VBA,再自己稍加研究,都是能到的。
最后发句感叹,excel太强大了,下了个编程手册,100多M,晕!