Visual Basic и Excel потоковая передача данных в режиме реального времени

1262
Robert Rosen

В настоящее время я работаю над программой, которая работает в Visual Basic (не VBA). Программа собирает данные с датчиков и создает файл данных (* .csv) с информацией, собранной за определенный промежуток времени. Я надеюсь добавить или даже изменить программу, чтобы я мог выполнять вычисления в реальном времени с собранными данными.

Можно ли передать данные потокового вещания в файл * .csv в электронную таблицу Excel, и если да, то как это сделать в VB? Я пишу макрос для постоянного запуска в фоновом режиме электронной таблицы для выполнения необходимых вычислений при импорте новых данных.

PS Я не писал оригинальную программу и все еще очень плохо знаком с кодированием, поэтому я все еще пытаюсь разобраться во всем сам

-1
Вы можете столкнуться с проблемами потоковой передачи в файл и одновременного доступа к файлу! Это VB6 или VB.net? Dave 9 лет назад 1
OLE / Automation - это метод, используемый для взаимодействия между приложениями. Excel можно настроить для получения данных из самого приложения, а не через промежуточный текстовый файл, но вам также потребуется настроить исходную программу для его поддержки. Yorik 9 лет назад 0
начать изучение баз данных. Sqlite3 например. befzz 9 лет назад 0

1 ответ на вопрос

1
Julian Knight

Unfortunately, Excel is a poor choice here as it assumes you want the whole csv file and locks it. When it does that, you can no longer write to it.

You could use something like the Microsoft PowerQuery addin to read the data but this wouldn't be realtime and would have to reload the whole thing on each refresh (which can be automated).

Alternatively, if you don't actually need Excel, you could do this fairly readily with a simple, local, web app using a Microsoft HTA (HTML Application) or Node-Webkit (the latter being preferred since it gives you the full power and capability of Node.JS which is perfectly happy dealing with streaming files. Of course, these solutions would require programming skills. :( though one's that would stand you in good stead elsewhere. :)