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

Excel and RabbitMQ - Process RabbitMQ Messages in Excel?

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

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

这可能吗?

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

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

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

这个可以吗?

我的编码经验有限,我正在努力学习,所以如果这是一个 'silly' 问题,请原谅我。

任何指点将不胜感激,例如,这可以通过 VBA 代码或 Excel 加载项完成吗?

提前致谢...

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

现在,好消息:如果你真的想,你可能可以做到,至少有两种不同的方式。

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

为了实现你想要的,有多种方法可供探索:

  • 在 .NET 中编写一个 Excel 插件以实际 consume/publish 到队列。这实际上可能是最简单的解决方案,但它需要 Visual Studio 和一些 .NET 知识。一些很好的入门资源: https://msdn.microsoft.com/en-us/library/bb157876.aspx and the always-so-good https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html
    • 优点:可能是最简单的解决方案
    • 缺点:您最终可能会得到一个与您当前要求相关联的插件,并且在规范更改时必须更新您的插件
  • 利用 .NET 中的 COM Interop 围绕 RabbitMQ 的 .NET 客户端库编写包装器 DLL。如果您从未使用过 .NET,则此方法可能不合适,因为它将涉及编组数据类型和函数指针。如果您选择这条(困难的)路径,请多多指教:Easiest way to make .NET DLL visible to COM?。然后,您可以通过将生成的 DLL 添加到 VBA 项目,将 COM 包装器导入任何 Excel/Office 项目。
    • 优点:您可以创建一个通用包装器,将 RabbitMQ 公开给 Excel VBA 并在任何其他基于 Excel 的项目中重复使用它
    • 缺点:学习曲线会很陡。
  • 使用STOMP adapter on your RabbitMQ server (if you have that option available, which may or may not be possible depending on your setup/sys admin), and write your own implementation in VBA. This is a bit hardcore, but works without any .NET voodoo, but you will need a special ActiveX control called MSWINSCK.OCX, and some event handling. Whosebug has a question with decent answers samples here: MSWinsock.Winsock event handling in VisualBasic
    • 优点:再次,您可以创建可重复使用的代码(通过 class,您可以将其导入其他项目)
    • 缺点:你必须实现一个协议,它依赖于一个ActiveX控件。还需要使用 RabbitMQ 适配器,您可能无法在您的上下文中使用它。

很抱歉,我无法提供 实际代码 来展示您将如何处理这些问题,但正如您现在可能已经猜到的那样,所有解决方案意味着相当多的工作。所以至少,你知道去哪里找...