Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 7, 2016 12:33:03

Puten
Зарегистрирован: 2016-01-06
Сообщения: 40
Репутация: +  2  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

Есть сканер баркодов. По сути, обычная клавиатура (считывает баркод и печатает в виде текста).

Нужно сделать программу учета приходящих посылок, для windows (сейчас это ручкой в журнале).

Т.е. пришла посылка - сканируется баркод, вводится кол-во коробок, кто принял (для всего этого можно сгенерировать баркоды и потом сканнером по нужным кодам пройтись) + дату приема. Все это должно сохраняться в .xls / .xlsx или .csv. Этот формам выбран, чтобы администрация на своих компах в любое время могла открыть файлик и найти нужную посылку/отправителя/получается и тд.
Фишка в том, что программа каждый раз запускается по новой, а итоговый файлик всегда один и тот же и просто должно дописываться по своим местам дальше, а не создавать новый файлик. Что-то вроде базы данных.

В экселе несколько колонок(столбиков): ‘ID’, ‘POST’, ‘DATE’, ‘NAME’ и тд. Каждый запрос должен записываться в свою колонку.

С обычным текстовым файлом, вроде, в голове есть идеи, но для экселя пока не придумал. Просмотрел несколько вариантов (openpyxl, xlrd + xlwt, xlsxwriter). Некоторые не могут редактировать, только сохранять в эксель, с другими не совсем понятно, как считывать последние данные и дописывать дальше.

Прога в итоге будет одиноким файлом с расширением ‘.exe’ (через pyinstaller). Эксель будет сохраняться в той же папке, что и прога.

Или есть решения более удобные, чем простое сохранение в эксель? SQL может или на вебсервере чего замутить?

Пробывал с csv. Данные сохраняю в список и циклом записываю в csv. Проблема в том, что или пишет весь список в 1ю клетку, через запятую, или каждое слово на новой строке, а должно быть так:



В питоне новичек. Новым знаниям буду очень рад.

Винда + питон3.

Заранее спасибо.

P.S. Может обычное открытие экселем2007 не работает и нужен именно импорт данных в эксель из csv? Если так, то печально.

Отредактировано Puten (Янв. 7, 2016 14:15:35)

Офлайн

#2 Янв. 7, 2016 12:44:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

Ерудой страдаете, господа. Нужна БД - ведите запись в БД. Для чтения из БД есть куча способов, можете формировать xls по запросу, сделать свой веб-доступ к данным, использовать какую-нибудь готовую программу типа phpmyadmin или прикрутить админку джанги. Да хоть на Qt набросать простенькую программу с гридом.
Писать данные в xls глупо, чем раньше вы это поймете, тем меньше у вас будет геморроя потом.



Офлайн

#3 Янв. 7, 2016 12:56:52

Puten
Зарегистрирован: 2016-01-06
Сообщения: 40
Репутация: +  2  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

FishHook
Ерудой страдаете, господа. Нужна БД - ведите запись в БД. Для чтения из БД есть куча способов, можете формировать xls по запросу, сделать свой веб-доступ к данным, использовать какую-нибудь готовую программу типа phpmyadmin или прикрутить админку джанги. Да хоть на Qt набросать простенькую программу с гридом.
Писать данные в xls глупо, чем раньше вы это поймете, тем меньше у вас будет геморроя потом.


Вполне возможно, что ерундой. За советом и пришел сюда, на форум. Это у опытных есть уже возможные решения, для меня же, все решения выглядят одинаково, т.к. я еще не знаю плюсов и минусов каждого решения.

Из минусов бд - нужен отдельный сервер, настройка бд, формирование запросов и прочее. А хочется просто обычный .exe, который лежит на 1м компе и после запуска которого, остается обычный файлик.

Офлайн

#4 Янв. 7, 2016 13:02:16

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

Puten
А хочется просто обычный .exe, который лежит на 1м компе и после запуска которого, остается обычный файлик.
И кто вам не дает на этом одном компе держать один файлик db.sqlite?
Откуда такие далекоидущие выводы о необходимости сервера, каких-то сложных настоек? Половина программ на вашем ноутбуке имеет какую-то свою базу данных, даже браузер.



Офлайн

#5 Янв. 7, 2016 13:14:45

Puten
Зарегистрирован: 2016-01-06
Сообщения: 40
Репутация: +  2  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

FishHook
И кто вам не дает на этом одном компе держать один файлик db.sqlite?
Откуда такие далекоидущие выводы о необходимости сервера, каких-то сложных настоек? Половина программ на вашем ноутбуке имеет какую-то свою базу данных, даже браузер.

Тогда, если не затруднит, набросайте порядок действий и какие модули / пакеты для этого нужны.
Код писать не нужно, просто на словах, а я уже сам попробую все это воедино собрать.

Заранее спасибо.

Офлайн

#6 Янв. 7, 2016 13:22:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

У вас слишком размазанное и невнятное ТЗ, чтобы можно было что-то говорить о реализации. К тому же я не знаю вашего уровня подготовки, не знаю какими вы владеете технологиями.
Для начала просто научитесь писать ваши данные в sqlite, разработайте схему данных. Лучше сразу освоить какую-нибудь ОРМ.



Офлайн

#7 Янв. 7, 2016 13:43:49

Puten
Зарегистрирован: 2016-01-06
Сообщения: 40
Репутация: +  2  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

FishHook
У вас слишком размазанное и невнятное ТЗ
Что именно непонятно?

Пусть для простоты у нас будет 3 столбика с названиями ‘ID’, ‘Name’, ‘Courier’.
1) Спрашивается ‘Какой ID?’ - ответ на клаве -> ‘1’
2) Спрашивается ‘Имя?’ - ответ на клаве -> ‘Вася’
3) Спрашивается ‘Курьер’ - ответ на клаве -> ‘Почта России’

Ответ 1 идет в колонку ID, 2й в Name и 3й в Courier. В итоге все сохраняется в хоть какую-нибудь удобоваримую таблицу (эксель/ cvs), где все красиво разбито на 3 столбика.

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

Так понятнее?

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

Уровень подготовки минимальный, освоил только синтаксис. Дальше нескольких простых скриптов дело не заходило. Но читать доки/форумы не проблема.

Отредактировано Puten (Янв. 7, 2016 13:50:49)

Офлайн

#8 Янв. 7, 2016 14:05:42

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

Не совсем понятно, что делает программа.
Она подхватывает данные со сканера и дописывает в таблицу? Драйвер для передачи со сканера есть?



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#9 Янв. 7, 2016 14:09:20

Puten
Зарегистрирован: 2016-01-06
Сообщения: 40
Репутация: +  2  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

ajib6ept
Она подхватывает данные со сканера и дописывает в таблицу? Драйвер для передачи со сканера есть?
Сканер рабоает, как обычная usb клавиатура, только вывод текста идет посредством чтения заранее подготовленных баркодов. Никаких драйверов не надо. Разницы между ввести ‘Вася’ с клавы и отсканировать баркод, в котором закодировано ‘Вася’ - нету.

Просто сканером пользоваться удобнее, просканил 5 наклеек - оно написало 5 строк, сохранил.

Не в сканере дело, можно для теста просто с клавиатуры вводить данные.

Отредактировано Puten (Янв. 7, 2016 14:14:10)

Офлайн

#10 Янв. 7, 2016 14:22:57

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Запись и редактирование данных в excel - Python

Прост хотел понять, можно же Excel Открыть и вписать, зачем еще программу писать?



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version