通过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.


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

编辑

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

最佳答案

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


(谈论使用Internet Explorer)...上述所有实验均应可靠地“运行”,因为从用户的角度来看,IE确实可以按所述方式运行。但是,回到Tcl进程中,[dde]通常会引发“远程服务器无法处理此命令”异常。这是因为,在KBK的分析中,DDE没有提供“区分'预期结果,但是服务器无法提供'与'预期结果'的方法”。不接收DMLERR_NOTPROCESSED的唯一方法是调用“ dde ​​exec -async ...”


注意:我使用Excel +“ request”尝试了DDE的tcl示例,并且遇到了与您相同的错误:“远程服务器无法处理此命令”。

礼炮!,

08-25 05:59