Создать программу для Excel файла

Здравствуйте, помогите по написанию программы, сам я только учусь и многое непонятно.
Суть программы в следующем, есть excel файл с данными которые в итоге переводится в файл с расширением .dat для программы под названием BQuark, а она в свою очередь делает опрос с этого файла.
Помогите плиз и сколько это будет стоить?

Простой юзерский способ экспорта без написания дополнительного ПО:
Как конвертировать XLS в DAT

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

Это открытый формат? (есть спецификация?)

Если нет, то придется еще реверс-инжинирингом заниматься )

могу вам скинуть файлы исходный и файл конечный который уже для опроса программы прод названием BQuark (программа предназначена для опроса электросчетчиков потребителей).
я так понял что когда он компелируется в .dat то там добавляются определенные поля

да открытый формат, есть сам файл и файл для опроса

Под “открытым” имеется в виду наличие спецификации формата (где, что, в каком виде в него писать) от разработчика программы/формата.
Типа такой: https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format#File_format_structure (описание формата JPEG)

файл не могу скинуть, так как я новый пользователь

Вроде не было таких ограничений, только на форматы файлов — надо в ZIP/RAR/7z/… запаковать.

голова кругом, я итак мало чего понимаю в программировании а тут вообще все перепутал

22.rar (12.6 КБ)

а конечный файл должен выглядить вот так ТП 8.xlsx USB - 2.6 с дополнением.rar (9.0 КБ)
после он открывается уже в программе BQuark, для опроса

О, это текстовый, а не бинарный файл. Так что его открыть любым текстовым редактором, и его содержимое более-менее понятно (если кракозябры вместо русских букв — переключить кодировку на Win-1251).

Но всё равно это не какой-то стандартный формат, так что готовые решения вряд ли есть.
Ну и надо разобраться что какое поле значит, что туда писать и т.д.

На каком языке?

В целом надо:

  1. Найти и подключить библиотеку для чтения файлов Экселя для своего языка.
  2. С её помощью прочитать данные.
  3. Записать в нужном виде в .dat файл. Это текстовый файл, так что писать строки не должно быть сильно сложно, главное про кодировку не забыть.

изучаю яву, питон - немного.
а программу можно на любом это не критично, но конечно самому хотелось бы поучавствовать тоже в написании

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

https://openpyxl.readthedocs.io/en/stable/index.html

https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files

1 лайк

@Kent, а подскажите, Адрес концентратора Вы откуда берёте?
в примере для КТП-8 есть такие адреса

TYPE=PLC_I_CONCENTRATOR; ADDR=2CD6; CHILD.RUN=GET_M_STACK; CHILD.HOST=2CD6;
TYPE=PLC_I_CONCENTRATOR; ADDR=2CDF; CHILD.RUN=GET_M_STACK; CHILD.HOST=2CDF;
TYPE=PLC_I_CONCENTRATOR; ADDR=2CDC; CHILD.RUN=GET_M_STACK; CHILD.HOST=2CDC;

а где это брать в файле для ТП-22 - мне не очень понятно.
там есть такое:

Адрес концентратора	
2193	
21AB	п-п сети 128
21C2

но какие адреса к каким счётчика относятся - мне непонятно.
ну и непонятно что и для чего нужно “п-п сети 128”

а так, задача легко решается на любом языке программирования.
я бы лично её решал на Delphi. Но это только потому что я Delphi знаю, и есть опыт чтения XLS.
Но Вы можете написать код на любом удобном языке.

Здравствуйте, адрес концентратора оно же имя берется разное ее можно изменить вручную в excel или dat файле, в концентраторе могут совпадать имена с другими ТП. Также на концентраторе можно указать любое имя и оно должно содержать только 4 цифры или буквы.
п-п вообще должно быть р-р (размер).
п-п сети 128 - это размер сети (количество счетчиков в ТП). Допустим количество счетчиков 65шт. мы делаем чуть больше в концентраторе например 128. Плохо будет если количество 500шт а в концентраторе прописано 256 то будет опросов именно 256 раз и остановится.
Если несложно то можно на чем Вам удобно даже Дельфи я только ЗА!
Спасибо за отклик!

Так я же как раз про это и спрашивал - где в Excel задаётся адрес концентратора. Почему в выложенном вами файле указано три адреса концентратора и какой из них указывать в DAT файле?

вот, например, Вы выложили DAT файл для ТП-8. было бы неплохо увидеть 8.xls (исходный XLS для ТП-8)

32.rar (68.1 КБ)
32.xlsx USB 2,6.rar (56.6 КБ)
эти файлы с ТП 32, в первоначальном Excel файле они задаются в самом начале, три адреса концентратора это условно 3 фазы (на каждой фазе сидит потребитель).