Excel и RabbitMQ-обрабатывать сообщения RabbitMQ в Excel?


Я хотел бы подписаться на очередь сообщений RabbitMQ из Excel 2013.

Конечная цель состоит в том, чтобы разрешить обработку данных, содержащихся в сообщении MQ, в Excel, а также разрешить Excel отправлять форматированное сообщение через очередь сообщений RabbitMQ.

Возможно ли это?

Сообщение, которое отправляется вниз по очереди сообщений, состоит из 7 полей, каждое поле разделено символом; - однако сообщение отправляется в виде одной строки поверх сообщения очередь...

Например "text;number;number;number;text,text,timestamp"

Я хотел бы иметь возможность разделить необработанное сообщение, как указано выше, на форматированные ячейки в Excel 2013.

Можно ли это сделать?

У меня ограниченный опыт кодирования, и я пытаюсь учиться, поэтому, пожалуйста, простите меня, если это "глупый" вопрос.

Любые указатели будут высоко оценены, например, можно ли это сделать с помощью кода VBA или надстройки Excel?

Заранее благодарю...

2 4

2 ответа:

Во-первых, плохие новости : нет простого способа сделать это.

Теперь, Хорошая новость : Если вы действительно хотите, вы, вероятно, можете сделать это, по крайней мере, двумя различными способами.

Отказ от ответственности я ничего не тестировал, не могу гарантировать, что это сработает, и вам (вероятно) нужно будет повысить уровень ваших навыков кодирования, чтобы достичь того, чего вы хотите. Это просто идеи, которые я бы исследовал сам, если бы у меня были такие же требования, как у вас, и должен дать вам несколько советов, чтобы получить начатый. Они не обязательно хороши или функциональны.

Существуют различные подходы, чтобы исследовать, чтобы достичь того, что вы хотите:

  • напишите надстройку Excel в .NET для фактического использования / публикации в очередь. Это может быть на самом деле самое простое решение, но оно требует как Visual Studio, так и немного знаний .NET. Некоторые хорошие ресурсы для начала работы: https://msdn.microsoft.com/en-us/library/bb157876.aspx и всегда-так-хорошо https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html .
    • плюсы: вероятно, самое простое решение
    • минусы: вы, вероятно, в конечном итоге получите аддин, привязанный к вашим текущим требованиям, и вам придется обновить аддин, когда спецификации изменятся
  • использовать com-взаимодействия .Net, чтобы написать обертку вокруг библиотеки DLL в RabbitMQ это .Чистая клиентская библиотека. Если вы никогда не делали .NET, этот подход может быть неуместным, так как он будет включать в себя маршалинг типов данных и указатели функций. Еще несколько указателей, если вы выберете этот (сложный) путь: самый простой способ сделать .NET DLL видимым для COM?. Затем можно импортировать com-оболочку в любой проект Excel / Office, добавив сгенерированную DLL в проект VBA.
    • плюсы: вы можете создать универсальную оболочку, которая предоставляет RabbitMQ для Excel VBA и повторно использовать ее в любом другом проекте на основе Excel
    • минусы: кривая обучения будет крутой.
  • используйте STOMP адаптер на вашем сервере RabbitMQ (если у вас есть эта опция, которая может быть или не быть возможной в зависимости от вашей установки/системного администратора), и напишите свою собственную реализацию в VBA. Это немного хардкорно, но работает без каких-либо .NET voodoo, но вам понадобится специальный элемент управления ActiveX под названием MSWINSCK.OCX и некоторая обработка событий. У StackOverflow есть вопрос с достойными образцами ответов здесь: MSWinsock.Обработка событий Winsock в VisualBasic
    • плюсы: один раз опять же, вы можете создать повторно используемый код (через класс, который можно импортировать в другие проекты)
    • минусы: вы должны реализовать протокол, и это зависит от элемента управления ActiveX. Также требуется использование адаптера RabbitMQ, который вы не сможете использовать в вашем контексте.

Мне жаль, что я не могу предоставить фактический код, показывающий, как вы пойдете на все это, но, как вы, вероятно, уже догадались, все решения подразумевают изрядный объем работы. Так, по крайней мере, вы знаю, где искать...

Я написал MQTT AddIn для excel deal с любым MQTT сервером, если кому-то нужно вы можете скачать по адресу: Скачать Excel MQTT Addin