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

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

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

这可能吗?

消息队列中发送的消息由7个字段组成,每个字段由a分隔; 符号 – 但是消息作为一个string通过消息队列发送…

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

我希望能够将上面的原始邮件拆分为Excel 2013中格式化的单元格。

可以这样做吗?

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

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

提前致谢…

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

好消息是,如果你真的想,至less可以用两种不同的方式来做。

免责声明我没有testing任何东西,不能保证它会工作,你(可能)将需要升级你的编码技能,以达到你想要的。 如果我有像你这样的需求,这些只是我自己探索的想法,并且应该给你一些启动指南。 他们不一定好或function。

有各种探索方法来实现你想要的:

  • 在.NET中编写一个Excel插件,以实际使用/发布到队列中。 这实际上可能是最简单的解决scheme,但它需要Visual Studio和一些.NET知识。 一些很好的资源开始: https : //msdn.microsoft.com/en-us/library/bb157876.aspx和永远如此好的https://www.rabbitmq.com/tutorials/tutorial-one-dotnet .html 。
    • 优点:可能是最简单的解决scheme
    • 缺点:你最终可能会得到一个与当前需求相关的插件,并且在规格改变时必须更新插件
  • 利用.NET中的COM Interop在RabbitMQ的.NET客户端库上编写一个包装器DLL。 如果你从来没有做过.NET,这种方法可能不合适,因为它涉及编组数据types和函数指针。 如果你select这个(困难)path,还有更多的指针: 使.NET DLL对COM可见的最简单的方法是什么? 。 然后,您可以通过将生成的DLL添加到您的VBA项目中,将您的COM包装器导入到任何Excel / Office项目中。
    • 优点:您可以创build一个通用的包装,将RabbitMQ公开到Excel VBA,并在任何其他基于Excel的项目中重复使用
    • 缺点:学习曲线会陡峭。
  • 在你的RabbitMQ服务器上使用STOMP 适配器 (如果你有这个选项可用,根据你的设置/系统pipe理员可能或不可能),并在VBA中编写自己的实现。 这是有点硬核,但没有任何.NET巫术,但你将需要一个特殊的ActiveX控件,称为MSWINSCK.OCX ,和一些事件处理。 StackOverflow在这里有一个体面的答案示例的问题: VisualBasic中的MSWinsock.Winsock事件处理
    • 优点:再次,您可以创build可重复使用的代码(通过您可以在其他项目中导入的类)
    • 缺点:你必须实现一个协议,它依赖于一个ActiveX控件。 还需要使用RabbitMQ适配器,在您的上下文中您可能无法使用该适配器。

对不起,我不能提供实际的代码,显示你如何去做任何事情,但正如你现在可能已经猜到的那样,所有的解决scheme意味着相当多的工作。 所以至less,你知道在哪里看…