6

通过 Excel 将 Excel 与“ABC”连接可以工作,通过 DDE 将 R 与 Excel 连接也可以,但是如何将 R 与“ABC”应用程序连接?

我有提供 DDE 接口的应用程序,从 Excel 中我可以使用此 DDE 参考从中检索值:

='ABC'|DDE!_nazwa_value

从 R 我尝试使用tcltk2库,如下所示:

tcltk2::tk2dde.request(service="ABC", topic="DDE", item="_nazwa_value")

但发生错误:

Error in structure(.External(.C_dotTcl, ...), class = "tclObj") : 
  [tcl] remote server cannot handle this command.

[1] "Error in structure(.External(.C_dotTcl, ...), class = \"tclObj\") : \n  [tcl] remote server cannot handle this command.\n\n"
attr(,"class")
[1] "try-error"
attr(,"condition")
<simpleError in structure(.External(.C_dotTcl, ...), class = "tclObj"): [tcl] remote server cannot handle this command.

我只是尝试使用 tcltkdde函数从应用程序中检索数据,我认为item我的部分tk2dde.request是错误的,但是我尝试了各种修改(没有_例如),你知道解决这个问题的任何线索或资源吗?

编辑

出了点问题我在服务器主题列表上看不到 ABC 服务器或 DDE 主题: tk2dde.services()但 Excel 仍然可以使用连接和检索值='ABC'|DDE!_nazwa_value,DDE 查询也看不到它

4

1 回答 1

2

您可以在 tcl/tk wiki 中阅读有关DDE的文章:

(谈论使用 Internet Explorer) ......所有上述实验都应该可靠地“工作”,因为从用户的角度来看,IE 确实像描述的那样工作。然而,回到 Tcl 进程中,[dde] 通常会抛出“远程服务器无法处理此命令”异常。这是因为,在 KBK 的分析中,DDE 没有给出“区分‘预期结果,但服务器未能提供’和‘没有预期结果’的方法”。不接收 DMLERR_NOTPROCESSED 的唯一方法是调用“dde exec -async ...”

注意:我使用 Excel + "request" 尝试了 DDE 的 tcl 示例,我得到了和你一样的错误:"remote server cannot handle this command"

萨卢多斯!,

于 2018-09-20T02:24:34.137 回答