最初,我实现了一个可以同步调用网络方法的 UDF,但遇到了很多麻烦,尤其是当我尝试请求大量数据时-- 简而言之,Excel 会挂起并卡住,直到检索到所有数据,这会严重危害用户体验。
我猜同步使用 Web 服务才是真正的 killer 。所以我想知道是否有什么方法可以异步?谁能给我一些指示?哪个工具或平台更受欢迎? (个人还是比较喜欢用C#)
最佳答案
RTD 可以。您必须实现 IRtdServer 接口(interface)。当您的加载项启动时,Excel 会为您提供一个函数指针。对于每个单元格,您将获得一个“excel id”和一个参数列表。发送您的异步 Web 请求。当响应到达时,您调用 Excel 为您提供的通知函数。当 Excel 准备就绪时,它将调用您的 GetData 方法来实际获取数据。
参见 How do I create a real-time Excel automation add-in in C# using RtdServer?有关如何在 C# 中执行此操作的示例。
一旦您理解了 RTD 的工作原理,Excel-DNA 就可以很好地抽象出 COM 管道...强烈推荐。
关于c# - 实现一个可以异步调用web方法的Excel UDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7468629/