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

合集下载

LabWindows_CVI下基于Excel的测试控制技术_吴松龄

LabWindows_CVI下基于Excel的测试控制技术_吴松龄

ULL,MyCellRangeV,CA_DEFAULT_VAL,
&ExcelRangeHandle);
CA_VariantClear(&MyCellRangeV);
// Make range Active
Excel_RangeActivate (ExcelRangeHandle,
&ErrorInfo, NULL);
2 工程实现 2.1 软件总体设计 基于虚拟仪器的测控程序设计采用面向对象的 程序设计思想。在虚拟仪器系统中,硬件只是为了 解决信号的输入输出,软件才是整个仪器系统的关 键,任何一个使用者都可以通过修改软件的方法, 很方便地改变、增减系统的功能与规模,所以有 “软件就是仪器”之说。一般虚拟仪器系统包含用 户界面、程序控制、数据采集以及数据分析[4]。 整个软件设计过程中采用面向对象的程序设计 思想和模块化的程序结构,实现了数据处理和测试 流程分离。数据信息包括测试配置参数和测试结果 数据,测试流程的执行就是读取Excel文件中的配置 数据,配置测试仪器,进行相应的测试控制、数据 采集、分析和计算,并把结果回送到测试结果中。 整个软件主要包括测试系统主程序模块、单项测试 模块、测试流程数据库等部分,软件层次架构图如 图1所示。 在进入测试项目时,首先读取相应Excel文件的 内容,将测试流程和相关参数显示到测试界面的流 程表中,每执行一步流程,主动获取控制参数,执 行完毕后将测试的结果再写入到流程表中,全部流 程结束后将测试结果保存为Excel格式的结果文件。 图1 软件层次架构图(参见右栏)
// Get Active Workbook Sheets Excel_GetProperty(ExcelAppHandle,NULL,
E x c e l _ A p p S h e e t s , C AV T _ O B J H A N D L E , &ExcelSheetsHandle);

Visual Basic调用Excel之技巧

Visual Basic调用Excel之技巧

]Visual Basic调用Excel之技巧Visual Basic(以下简称VB)是一套可视化、面向对象、事件驱动方式的结构化程序设计语言,已经成为许多程序设计者甚至专业程序员用来开发WINDOWS应用程序的首选开发工具。

但用过VB的程序设计人员都知道,要想用VB输出复杂的表格来,是十分困难的。

能不能用VB调用EXCEL呢?Active 技术标准为我们解决了这个问题。

最近笔者为单位开发“土工试验数据整理”的某个模块时,涉及到复杂数据表格的输出问题,经过笔者的摸索,用VB调用EXCEL,取得了很好的效果。

本文从编程实践的角度对使用VB控制EXCEL的技术作简要说明。

1 EXCEL的对象模型如果一个应用程序支持自动化技术,那么其它的应用就可以通过其暴露的对象,对它进行控制,控制程序称为客户机,而被控制的一方就称为服务器,被控制的对象就是Active对象。

VB正是通过EXCEL显露的各级对象来控制EXCEL工作的。

每个对象都有各自的方法和属性,通过方法可以实现对对象的控制,而属性则可以改变对象的各种状态。

理解EXCEL的对象模型是对其编程的基础。

EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素,这些对象元素就是VB可以操纵的。

在EXCEL对象的层次结构中,最顶层是Application对象,是Excel本身。

从该对象开始往下依次是:.workbooks对象集,是Application对象的下层,其指的是Excel的工作簿文件。

.worksheets对象集,是Workbooks对象集的下层,它表示的是Excel的一个工作表。

.Cells和Range对象,它们是worksheets对象的下层,它则指向Excel工作表中的一个或多个单元格。

以上介绍的四个对象是Excel中最重要也是用得最多的对象,而且从上面的介绍中也不难看出,要控制Excel中的某个具体对象,如某个工作簿中某一表格中的单元格,就必须从Excel层次结构对象的最上层即Application对象开始遍历。

LabWindows/CVI中基于ActiveX技术的Excel访问

LabWindows/CVI中基于ActiveX技术的Excel访问

Ib n 0 sC I N t n nt met 司 的 软 件 产 品 , 丑 Wjdw, V 是 ao a I r n / il s u s公
指 向可用方 法列表 的指针组成 , 每个方 法有对应 的 I D号码 , 称
为 DSI 当获 得 某 方 法 的 DSI 之 后 , 可 以通 过 调用 IPD。 IPD 就
Ac e sng t c lBa e n tv X c o o y i b i o /CVI c si o Ex e s d o Ac i e Te hn l g n La W nd ws
CHEN n - ,L U a - n ,W ANG in mi Yi gl I F n mig i Ja - n
摘要 : 实际工程为背景 , 绍了在 I b no s C I 以 介 丑 widw / V 环境 下 , 于 A te 基 cvX技 术访 问 Mi oot xe 03的方法 , i c sfE cl 0 r 2 以及创建
自动 化 仪 器驱 动 器 的 方 法 。详 细 阐述 了访 问 E cl 体 函 数 的 使 用 方 法 , xe 具 实现 了对 E cl 访 问 。通 过 该 工 程 实例 , 明 xe 的 说
具。
E cl xe是一种 常用 、 方便 的数据记 录格式 , 需要记 录数据 在
的某些场合中 , E cl 以 xe 格式记 录的数据 便 于后 续查看 与处理 。
本文介绍了在 Lb n o sC I中利用 A t e aWidw/ V ci X技 术进行 E cl v xe
2 L b n o sC I A t e a Wid w/ V 对 cvX技术 的支持 i
( as eN vgt nlb , ol eo uo a o , abnE gneigU iesy H ri 5 0 1 C ia P si aiao a .C lg f tm tn H ri n ier nvri , abn10 0 , hn) v i e A i n t

LabVIEW与Excel的通信方法

LabVIEW与Excel的通信方法

《自动化仪表》第27卷第4期 2006年4月Lab V I E W 与Excel 的通信方法Com m un i ca ti o n M e tho d be t w e e n LabV I E W and Exce l陈金平 王生泽 吴文英(东华大学机械工程学院,上海 200051)摘 要:在虚拟仪器开发过程中,需要将一些多路采集数据存储在Excel 表格中。

LabV IE W ,而LabV I E W 中的DDE 是W indows 操作系统中的一种基于消息的协议。

利用LabV IE W 的DDE 功能可以很好地实现LabV I E W 与Excel的数据通信。

通过具体例子叙述了LabV I E W 的DDE 功能,这种功能使得LabV IE W 与Excel 的数据交换方便快捷,实现方法简单明了,实践表明DDE 是增强LabV I E W 整体功能的一条有效途径。

关键词:虚拟仪器 通信 动态数据交换中图分类号:TP311.13 文献标识码:AAbstract:In the p rocess of devel op ing virtual instrument,s ome collected data fr om multi 2path need t o be stored in Excel table .LabV I E W is a convenient and flexible development envir onment f or virtual instrument,while DDE is a message 2based p rot ocol in W indows operational system.The data communication bet ween LabV IE W and Excel is well fulfilled by using DDE .The DDE functi on is described by certain examp les .It is said that data exchanging bet w een LabV IE W and Excel is convenient,fast and easy t o be fulfilled .The p ractice shows that DDE is an efficient way t o enhance LabV IE W integrated function .Keywords:V irtual instrument Communication Dynam ic data exchange0 引言LabV IE W 是一种方便灵活的虚拟仪器开发环境。

Matlab中使用Excel数据

Matlab中使用Excel数据

Matlab中使用Excel資料收藏% Open Excel, add workbook, change active worksheet,% get/put array, save, and close% First open an Excel Server%打開一個Excel操作物件Excel = actxserver('Excel.Application');%使Excel物件可見,即打開Excel視窗,實際應用時設置其為不可見的set(Excel, 'Visible', 1);% Insert a new workbook%創建工作本組物件Workbooks = Excel.Workbooks;%添加一個工作本Workbook = invoke(Workbooks, 'Add');% Make the second sheet active%獲取當前活躍工作本的表單組,一個工作本共有3個表單(sheets)Sheets = Excel.ActiveWorkBook.Sheets;%獲取表單組中的一個表單sheet2 = get(Sheets, 'Item', 2);%啟動該表單invoke(sheet2, 'Activate');% Get a handle to the active sheet%獲取當前活躍表單的控制碼Activesheet = Excel.Activesheet;% Put a MATLAB array into Excel%向表單中寫入資料A = [1 2; 3 4];%設置寫到Excel中的範圍ActivesheetRange = get(Activesheet,'Range','A1:B2');%寫入set(ActivesheetRange, 'Value', A);% Get back a range. It will be a cell array,% since the cell range can% contain different types of data.%讀會資料塊Range = get(Activesheet, 'Range', 'A1:B2');%獲取資料B = Range.value;% Convert to a double matrix. The cell array must contain only scalars.%B現在是符合矩陣,將其轉換成數值矩陣B = reshape([B{:}], size(B));% Now save the workbook%保存檔,可以寫絕對路徑,相對路徑總是保存在我的文件中invoke(Workbook, 'SaveAs', 'myfile.xls');% To avoid saving the workbook and being prompted to do so,% uncomment the following code.% Workbook.Saved = 1;% invoke(Workbook, 'Close');% Quit Excel%退出Excelinvoke(Excel, 'Quit');% End process%結束Excel進程delete(Excel);function UserRange = ExcelRangeCalculate(data,begin)% 計算資料矩陣所佔用的儲存格範圍% UserRange = ExcelRangeCalculate(data,begin) 輸入參數data用來指定要寫入的% 資料矩陣,begin用來指定寫入的初始位置(左上角位置)。

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对象及修改对象的名称和标识符,高级函数一般采用默认配置即可。

Lab+Windows_CVI中基于ActiveX技术的Excel访问

Lab+Windows_CVI中基于ActiveX技术的Excel访问
CA_DiseardObjHandle(RangeHandlc);//释放句柄 sprinff(RangeString,”B%d:BE%d”,lOW,lOw);
∥指定输入数据的单元格范围,为连续范围单元格 CA_VariantSetCString(&vRange,RangeString); //将字符串数
Excel是一种常用、方便的数据记录格式,在需要记录数据 的某些场合中,以Excel格式记录的数据便于后续查看与处理。 本文介绍了在I址wind删s/CⅥ中利用ActiveX技术进行Excel 访问的实现方法,并结合某实际工程,给出了主要程序代码及其 说明。
1 ActiveX技术
ActiveX是一种软件组件,它可以插入到不同的应用程序 中,并被当作程序的一部分来使用。利用ActiveX可以把两个 或两个以上的应用程序组合在一起,使其像应用程序一样工作, 或者可以在同一应用程序外壳中进行不同应用程序间的切 换It】。
Accessing to Excel Based on ActiveX Technology in LabWindows/CVI
CHEN Ying—li,LIU Fan—ming,WANG Jian-min
(Passive Navi-sation Lab.,College of Automation,Harbin Engineering University,Harbin 150001。China)
Abstract:The approach of accessing to Microsoft Excel 2003 baaed on ActiveX technology in LabWindows/CVI environment is in· treduced,in sequence,the establishments of driving∞heme for automatic instruments are presented in detail.To realize the acceBs to Excel.the operations of accessing to the real functions are intensively illustrated鹊well.The experiments in the real environment demonstrate that this method illustrated here is of great value for practical applications. Key words:LabWindows/CVI;ActiveX;Excel

LabVIEW的ActiveX实验--调用excel(精)

LabVIEW的ActiveX实验--调用excel(精)

一台 一套
3.Excel
4.PowerPoint
一套
一套
实验原理
LabVIEW提供了强大的外部程序接口,包括DLL、CIN、ActiveX、 Matlab等。通过DLL,可以方便调用C、VC、VB等编程语言及 Windows自带的API函数;通过ActiveX,方便调用外部程序、控件 等。
利用LabVIEW调用Excel和PowerPoint提供的ActiveX来操作Excel 和PowerPoint
实验步骤1--调用Excel
实验步骤1--调用Excel
实验步骤1--调用ExcelHale Waihona Puke 实验步骤1--调用Excel
实验步骤1--调用Excel
程序最终的运行结 果如。程序在指定的单 元格内写入指定的内容。 该Excel没有被保存,用 户可以增加新的属性节 点或者方法节点实现对 Excel的保存。
LabVIEW培训
团队:晏 凯 韩 君 肖迎春 张胜宇
LabVIEW的ActiveX实验
实验目的 实验器材 实验原理 实验步骤
实验目的

1.了解LabVIEW的外部程序接口 2.掌握在LabVIEW中调用ActiveX的方法

实验器材
1.计算机 2.LABVIEW2013软件
实验任务
1.按照介绍的“调用Excel”方法,调用Excel,并添加Excel保存程序。 参考前面板如下图:
THANK YOU FOR WATCHING
实验步骤1--调用Excel
(1)在函数面板→互连接口→ActiveX,选择“打 开自动化”,将其放在程序框图的合适位置。 (2)在“打开自动化”上单击鼠标右键,在弹出 的菜单中选择“选择ActiveX类→浏览”,出现 如图4-2所示的对话框,从类型库中选择 Microsoft Excel 11.0 Object Library Version 1.5,在对象框中,选择仅显示可创建的对象,然 后选择Application(Excel.Application.11), 单击“确定”,就可以完成Automation Refnum控件与Excel Application的连接。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最近需要实现在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 Object
Library貌似资料很多,但是鉴于CVI的用户数量,还是别指望太多,MSDN上有VB和C#的实例,如果我没记错的话.至于CVI中的库,真不知道是谁写的,哪都找不到帮助,MSDN上有完整的VB下的手册可以参考,如果装过完整版的Office的话好像会有个中文版的。

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

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

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

这种方法我没研究深入,只是实现了Excel数据的读取和写入,还有很多问题要解决,但是它的操作方式我很喜欢。

像大多数库一样,ADO你可以找到除CVI外很多语言的资料、示例。

用ADO实现的好处是不必过多考虑Excel版本问题,好像Excel2007之前的都可以兼容,Excel2007好像是提供了一个新的库,具体没研究过。

坏处就是,你得参照VBA的语句来完成SQL完成不了的工作,因为对VBA不熟悉,所以我才没深入研究下去。

另外一点是,Jet貌似没用64位的版本,所以这种方法不能提供64位系统的兼容。

相关文档
最新文档