Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试从VBa使用.Net DLL/如何从Excel查询Azure Service Bus队列_.net_Excel_Vba_Azure_Dll - Fatal编程技术网

尝试从VBa使用.Net DLL/如何从Excel查询Azure Service Bus队列

尝试从VBa使用.Net DLL/如何从Excel查询Azure Service Bus队列,.net,excel,vba,azure,dll,.net,Excel,Vba,Azure,Dll,您正在尝试从MS Office Vba宏中访问.Net DLL吗?然后,您只需切换透视图,使用Visual Studio在Vb.net或C.net中编写程序,并从中调用excel库方法。我浪费了很多时间试图从VBa调用.Net库-请参阅下面我的原始消息。从新技术中调用旧技术,而不是从另一个角度调用旧技术 谢谢你让我走上正轨,戈弗特 如何:使用Visual C功能访问Office互操作对象C编程指南 ----------最初的呼救声------------------- 大家好,斯塔克沃夫的人真

您正在尝试从MS Office Vba宏中访问.Net DLL吗?然后,您只需切换透视图,使用Visual Studio在Vb.net或C.net中编写程序,并从中调用excel库方法。我浪费了很多时间试图从VBa调用.Net库-请参阅下面我的原始消息。从新技术中调用旧技术,而不是从另一个角度调用旧技术

谢谢你让我走上正轨,戈弗特

如何:使用Visual C功能访问Office互操作对象C编程指南

----------最初的呼救声-------------------

大家好,斯塔克沃夫的人真棒。非常感谢所有伟大的质量保证的我已经阅读了日期。现在是我的第一个问题的时间

我不知道如何以最优雅的方式从VBa查询Azure服务总线队列。请帮忙!我都快睡不着了

我尝试的是在启用COM互操作的情况下编译azuresblite开源库,并在VBa中使用它。但它充满了挑战:COM不支持构造函数,静态成员不可见等等。 然后,我尝试在Microsoft.ServiceBus.dll上编写一个COM友好的包装器,但这会变得丑陋和复杂,并且在没有Azure SDK的非开发机器上安装Microsoft.ServiceBus.dll会有一些困难,而且代码密集,调试太难等等

我的最新想法正在流传 -Visual Studio for Office 365可以提供我需要的吗?但电子表格中的这个web应用程序如何帮助我在消息队列为空时实现优雅的等待/无cpu使用/无持续刷新? -使用Microsoft.ServiceBus.dll编写Excel外接程序,它能解决我在依赖Microsoft.ServiceBus.dll等方面遇到的问题吗

感谢阅读。

免责声明:我开发了该库

您最好在.NET中进行集成,而不要尝试使用VBA。您可以使Excel加载项在Excel内部运行,也可以使运行程序应用程序成为从外部驱动Excel的可执行文件。对于您的用例,还不清楚哪一个更好

对于使用.NET编写的Excel外接程序,您将在Visual Studio中进行开发,但外接程序框架有两种选择:

VSTO Visual Studio Tools for Office-这是内置于Visual Studio中的Office开发框架。您需要制作一个“应用程序加载项”,并将其安装到Excel计算机上。它是标准的,但有一些限制,比如不能使用工作表功能、需要管理员权限才能安装外接程序、与特定的Office版本紧密耦合等

-这是使用.NET制作Excel加载项的独立框架。它是开源的,比VSTO更轻,但仍然允许您完全访问Excel功能。安装很简单,只需复制一个文件即可。但它没有很好的记录。有关Excel DNA的支持和问题最好在以下位置:


对于驱动Excel计算的外部应用程序,您只需使用COM接口将内容写入Excel,计算并读取结果。如果您在大范围内进行写和读操作,而不是逐个单元,那么速度应该足够快。您可以将此作为一个单独的过程进行管理,因此它实际上对您来说是一个不错的计划。您不需要任何特殊的框架,只需参考用于Excel的COM互操作库即可


这些都不适用于基于web的Excel或任何其他平台版本。您需要在Windows上安装完整的Excel客户端。

这很烦人,我只是在寻找一个解决方案来证明概念

考虑到目前为止我所看到的,唯一真正的解决方案似乎是创建一个web服务前端,我们现在称之为微服务吗?从excel中调用
然后,您可以为队列编写一个漂亮的小包装器/api,而无需将逻辑放入Excel,因此它遵循良好的体系结构实践,只需要像所有良好的体系结构一样多考虑一点

,所以这听起来对你来说是个不错的计划。你不是在开玩笑吧,戈弗特!!!我已经使用Office Interop对象编写了一个控制台应用程序,正如您所说,它非常适合我的需要。再次感谢你。