Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: работа с сом портами из (в) exel vba win 7 и выше
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Onkel
Хочу посылать и принимать данные по virtual com port с экзел. Нашел хороший пример пример сом 1-4 но пример работает только на порты 1-4, в eayselectronics пример ссылается ну уже убитые дрова, может есть у кого проверенные код без activex и осх?
У меня программы приема посылки на питоне и подобных есть, но хочется ПРЯМО в exel, без посредников и копи пасты.
Onkel
OOOOOOps сам нашел - exel с портами - с 5 и 6 работает.
k155la3
Цитата(Onkel @ Jan 4 2017, 00:33) *
. . .
У меня программы приема посылки на питоне и подобных есть, но хочется ПРЯМО в exel, без посредников и копи пасты.

Можно наваять свой интерфейс в виде подключаемого к excel DLL. На MS VisualStudio.
DLL вызывается из макроса VBA (Excel, Access, . . . .)
Все что Вы делаете с еейными (DLL) функциями - определяется тем, что Вы в них пропишите.
Я думаю, в DLL должно быть:
- запуск "сервисного" приложения (в понимании ОС "сервис")
- интерфейсы сервиса
- останов-выгрузка сервиса.

alexunder
Цитата(Onkel @ Jan 3 2017, 22:33) *
Хочу посылать и принимать данные по virtual com port с экзел. Нашел хороший пример пример сом 1-4 но пример работает только на порты 1-4, в eayselectronics пример ссылается ну уже убитые дрова, может есть у кого проверенные код без activex и осх?
У меня программы приема посылки на питоне и подобных есть, но хочется ПРЯМО в exel, без посредников и копи пасты.

Есть еще вариант в случае если Вы пользуетесь Питоном, который написан на C#, а именно IronPython.
Можно воспользоваться средствами Interop и заполнять экселевскую таблицу прямо из Питона (вообще, любые экселевские объекты создавать). Я таким образом сделал небольшой класс, чтобы наши любители экселя сохраняли экспериментальные данные непосредственно в их любимый формат, минуся ASCII-таблицы.

Код
from System.Runtime.InteropServices import Marshal;
from System import Activator, Type;

apptype = Type.GetTypeFromProgID("Excel.Application");
xlobj = Activator.CreateInstance(apptype);
xlobj.Workbooks.Add(); # создаем документ
wb = xlobj.ActiveWorkbook; # реф на активный документ
wb.Sheets.Add(); # добавляем таблицу
...
wb.SaveAs(filename); # сохранить документ в файл
Onkel
да по ссылке во втором сообщении все работает, только осталось разобраться и переделать функцию посылки/ приема со строчных переменных на массив char. При этом нужен только сам exel (у меня 2010) и никаких vs.

2 Alexunder
Да, я могу создавать экзел файлы питоноским скриптом, но нужно немного не то- а именно нужно чтобы данные качались в экзел по нажатии кнопки и сразу же отображались на графике. Ну. как я выше отметил, принципиально вроде решил проблему, сейчас техникой занимаюсь.
Herz
Цитата(Onkel @ Jan 4 2017, 00:50) *
OOOOOOps сам нашел - exel с портами - с 5 и 6 работает.


Server not found crying.gif
Александр77
Цитата(Herz @ Jan 4 2017, 15:02) *
Server not found crying.gif

Просто убрал http в самом начале (пропущено двоеточие)
ссылка
Onkel
2 Herz - поправил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.