LabVIEW调用ActiveX操作Excel的一些心得

您所在的位置:网站首页 excel对图片的操作 LabVIEW调用ActiveX操作Excel的一些心得

LabVIEW调用ActiveX操作Excel的一些心得

2023-12-03 09:01| 来源: 网络整理| 查看: 265

LV本身自带了一些报告的模块,可以用于一些简单的Excel文件的操作,最好是提前做好一个Excel文件的模版,然后使用report 模块向指定单元格写入指写数据,其他的操作由模版来定义,比如图表、排版等等。

但是如果有些操作在模版中不好预置,比如要插入图表,但是图表个数与插入的数据量有关,如果用模版来做,我暂时没有好的想法,除非是提前插入N多个空的图表,然后插入数据以后,自动的生成曲线,这是一个办法,另一个办法是在Excel中使用宏,通过vba代码来判断要生成几幅图表,但是使用宏,在Excel选项中要启用对宏的信任,不然宏无法运行,这样就给安全性和方便性上带来了困难。如果还有别的方法,也请告知。

在查看LV自身关于Excel操作的模块时,发现它就是通过ActiveX调用来实现的,这时给上面的问题带来了新的思路,可以使用ActiveX,通过LV调用它,实现对Excel的一系列操作。

大体上技术路线是这样的:

录制Excel相关操作的宏,并保存。

编辑录好的宏,查看其中使用的属性或方法。

到LV中尝试找到上面的属性或方法。

查阅MS文档,查看对应属性或方法的参数说明。

编程测试。

但是在实操中遇到了问题,主要是一些属性或方法在LV中找不到,在文档中可以查到,录制的宏中也用到了,但是在LV的ActiveX中找不到对应的属性或方法。对于这个问题,实际是由于Excel的ActiveX版本不同导致的,在LV中默认的ActiveX引用是较老的版本(本人使用的是LV2017),而且ActiveX不同版本之间的兼容性比较差,主要是新旧版本中对于相同的功能可能使用的方法名称不同,或者是旧版本中没有的方法或属性,在新版本中增加了。而我遇到的就是新版中增加的方法。比如Axis.format,在LV2017的Excel操作中是没有的。为了解决这个问题,需要创建一个引用常量,然后右键,选择ActiveX,浏览,选择office安装目录下的EXCEL.exe这个文件,然后选择eExcel.Axis,再使用变体转换,把旧的引用转换成新的引用,这时就可以使用新的属性或方法了。但是,这样操作以后,软件就要求系统中必需安装相同版本的MS office了,其版本号主要看office安装目录里是office15,office16等等这些,而不是office2013,office2016,office2019这样的,因为2016版和2019版实际都是office16。

另外一个情况就是,用到了report模块,在编译生成exe的时候,就要在LV项目中填加一些文件夹,具体可以参看官方说明:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3