《LabVIEW中向Excel写入数据.docx》由会员分享,可在线阅读,更多相关《LabVIEW中向Excel写入数据.docx(7页珍藏版)》请在第壹文秘上搜索。
1、1.abVIEW中向Excel入数据这里只探讨通过Activex的方法,因为只有这种方法,才能完全发挥Excel的全部强大的功能C首先,1.abVieW是有一些自带的关于EXCeI编程的例子的。在findexample里SearCh一下,有推多的,其中有一个叫WritetabIetOX1.vi,我最早就是跟着它学的。学了不少,也被误导了很久,其实也不能算误导,只是以前没花时间去探讨。最近在用1.abVieW写一个类似ERP一样的软件,接触许多Excel表格,花了些功夫在ExcelVBA上,也算比以前有了更多的相识了。先来看看WritetabIetoX1.这个程序:这个程序的目的就是把一个2维数
2、组(表格)里的内容写到excel里。VorkBookRQfnUrl从上图看,步骤大致是这样的,先打开excel,再打开个WQrkbook,然后打开WOrkSheet,这事实上跟咱们运用excel的过程是一样的。打开WOrkSheet以后,它还定义门亍与列的header,最终才把table里的数据写到excel里。那个CeIlValUe子vi,我是从起先就用它,也像这个例子样,每次写都是套俩forloop,然后往excel里边猛写。最近我才发觉,原来有其他的方法,可以一次性写一个二维数组进去,特别快。其实想想也是,不至于会那么傻了。不过也怪VBA里太多的属性和方法,不简单找。前边的打开excel
3、workbook和WorkSheet我就不说,例子里就有,可以新建一个WorkbOOk和Sheet,也可以打开现有的,这个在excelexample.llb里都能找到。(excelexample在哪里?这个,打开这些个VI,SaVeaS一下就知道在哪里了,ok?)接下来说一下这儿天找到的几个方法和属性。首先是InSert,插入行或者列(就像你在excel里右键插入一样,每次只能一行或者一列,要多行的话,只能多来几次了,是这样吧?)在说这个之前,先说下怎么找这些属性和方法,在EXCel里,打开VB编辑器(工具一宏一VB编辑器,excel2007是在菜单开发工具下,我用的是EXCeI2007),打
4、开以后看VB语言参考,重点就是里边的方法和属性,对应在1.abview里边的PrQPerty和Method节点。help里可以搜寸,输入insert,可以看到许多,没方法,不熟识只能一个一个看咯C看到rangeinsert方法以后,去和1.abVieW的比对一下。度x就InSert(S附CopyOrigiri)式送贰一个代表Range对软的变量。参数必选可选称名政据描述突生Ia江指定单元格的调整方式。可为以下Shift可透XnjisertSliiftDirection艺量之一VariantXlShiftToRight或XiShiftDOWn如果省三此番数,MicrosoftExcel将根据区域
5、的形状确定训整方式。CopyOrfqin可选Variant复制的起点。可以看到这就是我们须要的方法了。因为改方法是在Range卜的,所以要先打开相应的range,才能用InSert,这就相当于我们在EXCel里,须要在哪里插入一样的道理。而Shift参数,看VBA里的描述,它是一个常出,是指定单元格的移动方向,点X1.lnSertShiftDireCtion就可以看到这个常泣的数值,在这里我就不贴图了。接下来讲最彳T成就感的发觉,如何一次性读取或写入肯定范围(若干行若干列)的数据?当然不能用CCl1.ValUe来写了。有的学友可能已经发觉了。就是用RangeValUe来实现,这一点在VBA里没
6、有写清晰,它给的例子还是相当于CenValUe一样,只是一个单元格的值,而事实匕应当是你指定的Range里全部单元格的数值。如上图,range方法包含两个参数CelIl和cell2,所以range这个范围就是CelIl到ce112的范围,比如BlfJC5,这不就是一个2维数蛆了么?对,就是这样。VorkKect7二二CQ1.llUGCm2VUUe*RkVluDtTypRange.value有两个,一个get,一个put,对应于读和写。假如cell2不连,那么就是只有一个单元格的值,那么这时候出来的就不是2维数组,而是一个数,连2维数组上去就会出错广。还有其他许多方法和属性,比如合并、拆分单元格,超链接,还有load,SaVeaS之类的,这些都可以去参考VBA,再自己稍加探讨,都是能找到的。最终发句感叹,excel太强大了,下了个编程手册,100多M,晕!