Excel和RabbitMQ-在Excel中处理RabbitMQ消息吗?

Mar*_*ith 5 excel vba excel-vba rabbitmq excel-2013

我想从Excel 2013订阅RabbitMQ消息队列。

最终目的是允许在Excel中处理MQ消息中包含的数据,并且还允许Excel通过RabbitMQ消息队列发送格式化的消息。

这可能吗?

沿着消息队列发送的消息由7个字段组成,每个字段用;分隔。符号-但是消息将作为一个字符串发送到消息队列中...

例如 "text;number;number;number;text,text,timestamp"

我希望能够将上述原始消息拆分为Excel 2013中的格式化单元格。

能做到吗?

我的编码经验有限,我想学习,所以如果这是一个“傻”问题,请原谅我。

任何指针将不胜感激,例如可以通过VBA代码或Excel插件来完成吗?

提前致谢...

T. *_*bre 4

首先是坏消息:没有简单的方法可以做到这一点。

现在,好消息是:如果您真的愿意,您可能可以通过至少两种不同的方式做到这一点。

免责声明我没有测试过任何东西,不能保证它会起作用,你(可能)需要提高你的编码技能才能实现你想要的。如果我有像您这样的要求,这些只是我会自己探索的想法,并且应该为您提供一些入门指导。它们不一定是好的或实用的。

为了实现您想要的目标,可以探索多种方法:

  • 在 .NET 中编写一个 Excel 插件来实际消费/发布到队列。这实际上可能是最简单的解决方案,但它需要 Visual Studio 和一些 .NET 知识。一些很好的入门资源: https://msdn.microsoft.com/en-us/library/bb157876.aspx和总是那么好的https://www.rabbitmq.com/tutorials/tutorial-one-dotnet .html
    • 优点:可能是最简单的解决方案
    • 缺点:您最终可能会得到一个与您当前需求相关的插件,并且当规格发生变化时必须更新您的插件
  • 利用 .NET 中的 COM Interop 围绕 RabbitMQ 的 .NET 客户端库编写包装器 DLL。如果您从未使用过 .NET,则此方法可能不合适,因为它将涉及数据类型和函数指针的编组。如果您选择这条(困难的)路径,还有更多提示:Easiest way to make .NET DLLvisible to COM? 。然后,您可以通过将生成的 DLL 添加到 VBA 项目来将 COM 包装器导入到任何 Excel/Office 项目中。
    • 优点:您可以创建一个通用包装器,将 RabbitMQ 公开给 Excel VBA,并在任何其他基于 Excel 的项目中重用它
    • 缺点:学习曲线会很陡。
  • 在 RabbitMQ 服务器上使用STOMP 适配器(如果您有可用的选项,这可能会也可能不会,具体取决于您的设置/系统管理员),并在 VBA 中编写您自己的实现。这有点硬核,但无需任何 .NET voodoo 即可工作,但您将需要一个名为MSWINSCK.OCX的特殊 ActiveX 控件,以及一些事件处理。StackOverflow 有一个问题,这里有不错的答案示例:MSWinsock.Winsock event Handling in VisualBasic
    • 优点:您可以再次创建可重用的代码(通过可以在其他项目中导入的类)
    • 缺点:您必须实现一个协议,并且它依赖于 ActiveX 控件。还需要使用 RabbitMQ 适配器,您可能无法在您的上下文中使用它。

很抱歉,我无法提供实际的代码来说明您将如何处理其中的任何一个,但正如您现在可能已经猜到的那样,所有解决方案都意味着大量的工作。所以至少,你知道去哪里寻找......