rtd函数的实例(Excel rtd)

一、RTD函数语法

RTD(ProgID,server,topic1,[topic2],…)

函数功能:全部显示全部隐藏从支持 COM 自动化 (COM 加载项:通过添加自定义命令和指定的功能来扩展 Microsoft Office 程序的功能的补充程序。COM 加载项可在一个或多个 Office 程序中运行。COM 加载项使用文件扩展名 .dll 或 .exe。)的程序中检索实时数据。

参数说明

ProgID 已安装在本地计算机上、经过注册的 COM 自动化加载宏 (加载项:为 Microsoft Office 提供自定义命令或自定义功能的补充程序。)的 ProgID 名称,该名称用引号引起来。

server 运行加载宏的服务器的名称。如果没有服务器,程序是在本地计算机上运行,那么该参数为空白。否则,用引号 (“”) 将服务器的名称引起来。如果在 Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA):Microsoft Visual Basic 的宏语言版本,用于编写基于 Microsoft Windows 的应用程序,内置于多个 Microsoft 程序中。) 中使用 RTD,则必须用双重引号将服务器名称引起来,或对其赋予 VBA NullString 属性,即使该服务器在本地计算机上运行。

topic1, topic2,… 为 1 到 253 个参数,这些参数放在一起代表一个唯一的实时数据。

必须在本地计算机上创建并注册 RTD COM 自动化加载宏。如果未安装实时数据服务器,则在试图使用 RTD 函数时将在单元格中出现一则错误消息。如果服务器继续更新结果,那么与其他函数不同,RTD 公式将在 Microsoft Excel 处于自动计算模式下进行更改。

二、RTD函数实际例子

=parseArrayData(RTD(“ExcelRTD.RTDFunctions”,,”AAA”))

=RTD(“MyComAddIn.Progid”,,”LOREM_IPSUM”,”Price”)

在Excel 中使用RTD非常简单,Excel 提供了一个新的工作表函数 RTD,此函数允许通过调用组件对象模型 (COM) 自动化服务器来实现实时数据检索。RTD 工作表函数使用以下语法:

“=RTD(ProgID, Server, String 1, String 2, … String n)”

第一个变量 ProgID 表示Real-Time Data 服务器(RTD Server)的编程标识符 (ProgID)。Server 变量指示运行RTD Server的计算机的名称;如果RTD Server在本地运行,则可以将此变量设置为空字符串或将其忽略。其他变量只表示发送到RTD Server的参数;这些参数的每个唯一组合都表示一个“主题”(topic),每个“主题”有一个关联的“主题 ID”(topic id)。这些参数区分大小写。例如,以下内容演示将生成三个不同主题ID的RTD Server调用:

=RTD(“ExcelRTD.RTDFunctions”,,”AAA”, “10”)

=RTD(“ExcelRTD.RTDFunctions”,,”AAA”, “5”)

=RTD(“ExcelRTD.RTDFunctions”,,”aaa”, “5”)

要使用 Excel 的 RTD 函数,必须注册一个实现 IRTDServer 接口的COM组件。实现这个接口的COM组件就是所谓的RTD Server。IRTDServer具有以下成员:

ServerStart(CallbackObject)

CallbackObject 是一个IRTDUpdateEvent类型的参数,它有一个UpdateNotify方法,用于通知Excel有更新的数据可用(push)。这样Excel就会通过调用RefreshData方法来刷新所有的主题(pull)。当 Excel 请求RTD Server的第一个 RTD 主题时调用ServerStart方法,该方法会在成功时返回 1,并在失败时返回负值或 0。这个方法在随后应用其他RTD函数时不会再次被调用。

ConnectData(TopicID, Strings, GetNewValues)

其中,TopcID 唯一标识这个函数在Excel中的一个应用,即使复制多份到不同的单元格,对于Excel来讲,也只是对应一个主题。这个 topicID 由Excel返回,我们需要将其记录下来,以便为其提供更新的数据。Strings 是一个System.Array,用于接收RTD函数传入的参数(String 1…String n),这是一个引用类型的参数。GetNewValues 用于确定是否总是获取最新数据,如果这个参数传入true,则每次保存Excel文档以后,再次重新打开时,看到的不一定是上次保存时的数据,而是最新的实时数据,这也是一个引用类型的参数。

每当一个新的主题(Topic)被应用到Excel,ConnectData都会被调用。在这里,需要保存传入的新的TopicID和查询参数以供之后更新数据使用。为此,需要定义好自己的数据结构。

DisconnectData(TopicID)

与ConnectData一样,TopcID 唯一标识这个函数在Excel中的一个应用。当我们从Excel中移除一个主题(删除所有采用相同参数的RTD函数)之后,DisconnectData将被调用,在这里,可以释放对这个主题的监控,并不再为其获取新数据。

Heartbeat

确定RTD Server是不是依然可用,0和负数代表不可用,1代表可用。Excel会调用此方法确定服务是否断连。

RefreshData(TopicCount)

TopicCount表示要更新的主题数量,这是一个引用类型的参数,用于返回给Excel。我们可以定义一个时钟,用于定时向数据源获取数据,这样,在时钟的Elapsed事件中,获取最新数据,并调用xlRTDUpdate成员的UpdateNotify方法以通知Excel,新的数据准备完毕。这样Excel就会调用RefreshData方法,来对工作簿中的数据进行更新。

ServerTerminate

当Excel不再需要从RTD Server获取实时数据时被调用。在这里,可以执行一些清理,例如清除缓存,关闭时钟等等。至此,一个RTD Server的生命周期就结束了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 86345@qq.com 举报,一经查实,本站将立刻删除。
(0)
上一篇 2022-04-16 07:00:05
下一篇 2022-04-16 07:10:01

猜你喜欢

  • excel如何进行成绩统计(如何用excel统计学生成绩)

    作为老师,Excel 2000/XP经常用来处理学生的成绩。这里有一些由边肖编辑的材料。将使用Excel遇到的一些问题整理如下,希望对大家有所帮助。 1.用键盘快速编辑单元格 在应…

    投稿 2022-04-14
  • 怎么查看打印机硒鼓还剩多少墨(怎么查打印机硒鼓还剩多少量)

    打印设备属于耗材,尤其是硒鼓,打印寿命一般是20000。当硒鼓被提示用完时,还可以使用一段时间,但是我们只有打印报告检查后才能知道能使用多久。这里有一个检查硒鼓寿命的图解教程。 操…

    2022-05-11
  • 老虎窗是什么_老虎窗的作用

    一、什么是老虎窗 老虎窗是泊来语,又称老虎天窗,上海俗语,指一种开在屋顶上的天窗(dormer)。也就是在斜屋面上凸出的窗,用作房屋顶部的采光和通风。老虎窗是天窗的演变,天窗即屋顶…

    2023-05-27
  • 娇韵诗面霜哪个系列好用,娇韵诗面霜的分类

    娇韵诗家的面霜护肤系列,有着不一样的护肤属性。 它们能够根据皮肤类型进行分型护理,对于皮肤的保湿、提亮、抗老等需求,提供更细化的产品线。所以娇韵诗面霜的分类比较细,能够选到的面霜产…

    投稿 2023-07-05
  • excel用公式法计算(excel使用简单公式计算)

    大家经常用Excel处理表格和数据。在处理表格和数据的过程中,会用到公式和函数。下面,我们就为您整理一些Excel的常用公式和使用方法,希望对您有所帮助。 一、查找重复内容公式:=…

    投稿 2022-04-16
  • 双减是减哪些,双减是哪两样

    近年来,“双减”成为教育领域热议的话题。作为一项力图革新教育体制的政策,双减旨在减轻学生过重的学业负担和应试压力,推动素质教育和全面发展。本文将解析“双减”政策的背景、主要内容和相…

    2023-08-09
  • 怎么做才能缓解抑郁_用这4个方法

    现在越来越多的人因为生活和学习的压力,导致自己的心理压力特别大。一旦心理出现了问题,就会很可能患上抑郁症。还有一些人是因为天生性格就比较害羞和内向,心理还比较脆弱也特别容易患上抑郁…

    2023-02-09
  • 虚拟号码软件哪个好用,虚拟号码app哪个好用

    现在,更多的人需要在全球范围内保持联系,而拥有一个可靠的虚拟号码是非常重要的。IntBell是一个可以购买美国虚拟号码的软件,它为您提供了一种快速,简单和经济的方式来拥有自己的虚拟…

    2023-07-30
  • 什么是网络教育(网络教育的优势及年限)

    网络教育也称为远程教育。是指使用电视及互联网等传播媒体的教学模式,使用这种教学模式的学生,通常是业余进修者,由于不需要到特定地点上课,既运用网络技术与环境开展的教育。招生对象不受年…

    投稿 2022-05-09
  • 提高内存速度(大内存可以提高电脑运行速度吗)

    内存越大,机器越快?我想大部分人的答案都是肯定的,256M到512M的提示很明显,所以当然512M到1G的提升也会很明显。但我以个人经验告诉你,1gb内存比512M慢,前提是你不设…

    投稿 2022-05-06

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注