Получение данных с веб-сервиса в Excel: какой язык/инструмент использовать?

Вопрос или проблема

У меня есть задача создать функциональность в Excel для получения и обновления данных с веб-сервиса и обратно, и мне нужно выбрать язык / инструмент для разработки этого.

Функции, которые мне нужны.

  1. Многопоточность
  2. Желательно, чтобы работало как на Mac, так и на Windows
  3. В идеале должно быть портативным (не обязательно)

Что я пробовал до сих пор

  1. VBA для Excel, однопоточный и зависает на несколько минут при больших объемах данных
  2. Excel-DNA работает отлично, но может работать только на Windows, или есть способ запустить его и на Mac?
  3. Xlwings работает хорошо, но требует некоторых установок, что делает его не портативным
    Есть ли другие технологии, которые кто-то хотел бы предложить?

Веб-сайты часто содержат и другие данные, например, фотографии и т.д., которые Excel должен будет загрузить, прежде чем выбрать правильные данные. Отсюда и медлительность.

Если бы я был на вашем месте, я бы создал промежуточный веб-сервис, который бы извлекал данные, а затем Excel запрашивал бы этот веб-сервис.

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

Также, так как вы будете делать запросы между Excel и вашим веб-сервисом, можно сделать это работоспособным как для MS, так и для MacOS более простым способом.

Я создавал такой веб-сервис с нуля за несколько часов, где я извлекал данные о ценах с веб-сайтов и затем передавал их в Excel через мой веб-сервис.

Ответ или решение

Какой язык или инструмент выбрать для извлечения данных из веб-сервиса в Excel?

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

Ключевые требования:

  1. Многопоточность. Это критично для обработки больших объемов данных без зависаний.
  2. Поддержка как Mac, так и Windows. Совместимость с обеими платформами может значительно расширить возможности использования решения.
  3. Желательна портативность. Хотя это не является обязательным требованием, оно остается важным фактором при учете удобства развертывания.

Анализ уже исследованных опций:

  1. VBA для Excel: Основным недостатком является отсутствие поддержки многопоточности, что приводит к зависаниям при обработке больших наборов данных.
  2. Excel-DNA: Отлично справляется с задачей на Windows, но не поддерживает Mac. Это ограничивает его использование, если нужна кроссплатформенная совместимость.
  3. Xlwings: Хорошо функционирует, но требует дополнительных установок, что уменьшает уровень портативности.

Рекомендации

Реализация посредника — веб-сервиса

Создание промежуточного веб-сервиса может решить многие проблемы:

  • Улучшение производительности: Средний веб-сервис может эффективно обрабатывать запросы, выполнять многопоточную обработку и минимизировать нагрузку на Excel.
  • Повышение гибкости: Используя такой язык программирования, как PHP, Python (например, Flask или Django), можно более точно и эффективно работать с данными.
  • Кроссплатформенная совместимость: Excel будет взаимодействовать не напрямую с исходными веб-сервисами, а с вашим собственным, что обеспечит бесшовную работу как на Windows, так и на Mac.

Рекомендуемые языки и инструменты:

  1. Python:

    • Библиотеки, такие как requests для доступа к веб-сервисам и pandas для обработки данных.
    • Простой и удобный в использовании фреймворк Flask для создания RESTful API.
    • Поддержка многопоточности через модули, такие как concurrent.futures.
  2. JavaScript с Node.js:

    • Природная поддержка многопоточности и событийно-ориентированная архитектура через async/await.
    • Использование пакетов, таких как axios для запросов к веб-сервисам и Express.js для создания серверных приложений.
  3. C# с ASP.NET Core:

    • Если нужен более производительный вариант для Windows, поддерживает многопоточность и кроссплатформенность с последними версиями.

Итог

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

Оцените материал
Добавить комментарий

Капча загружается...