Уведомления

Группа в Telegram: @pythonsu

#1 Июль 29, 2019 09:29:14

angelo_lagusa
Зарегистрирован: 2019-07-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

Добрый день ребята.
Решил сделать tool на питоне
Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator) .
Сейчас я загружаю данные вручную, а там для переноса в Postgres нужны вручную менять типы данных (например: bigdecimal -> double_precision, string -> varchar)

1) Данные из excel файла нужно экспортировать в Базы данных
2) Кодировку в excel поменять на UTF-8
3) Нужно будет вручную ввести: column types, separator
4) Данные при переносе изменяются, чтобы не изменялись нужно поменять типы данных при экспорте (например: bigdecimal -> double_precision, string -> varchar)
5) И чтобы Mapping совпадало с таблицами в Excel'e

Отредактировано angelo_lagusa (Июль 30, 2019 06:58:30)

Офлайн

#2 Июль 29, 2019 11:03:08

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2735
Репутация: +  183  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

Тебе для этого Dbeaver вообще не нужен. Просто считывай данные из файла и пиши их в базу.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Июль 29, 2019 14:25:00

angelo_lagusa
Зарегистрирован: 2019-07-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

Rodegast
Тебе для этого Dbeaver вообще не нужен. Просто считывай данные из файла и пиши их в базу.
А какие библиотеки питона нужны для считывание?

Офлайн

#4 Июль 29, 2019 16:02:53

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2735
Репутация: +  183  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

> А какие библиотеки питона нужны для считывание?

Их много сейчас openpyxl популярен, можешь с него начать.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Июль 29, 2019 17:27:15

ZiG
Зарегистрирован: 2018-12-16
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

Смотря как данные выглядят в exel. Я не парился, просто в один момент, скопировал все из экселя и вставил в блокнот, а потом без всяких библиотек, переносил данные. Но тут случай индивидуальный.

Офлайн

#6 Июль 30, 2019 06:28:04

angelo_lagusa
Зарегистрирован: 2019-07-29
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

ZiG
Смотря как данные выглядят в exel. Я не парился, просто в один момент, скопировал все из экселя и вставил в блокнот, а потом без всяких библиотек, переносил данные. Но тут случай индивидуальный.
Я это все и так вручную делаю, мне для работы нужна, чтобы каждый раз не экспортировать вручную.
Вот для этого хочу автоматизировать на питоне. Если будут решение, то напиши

Офлайн

#7 Июль 30, 2019 08:32:55

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

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

Если они простые, без объединений ячеек, то, возможно проще будет открывать их через Pandas.
Но обычно с экселем всё сложнее и приходится писать отдельный код считывания под каждый вид таблицы.



Офлайн

#8 Июль 30, 2019 09:33:26

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

Striver
Но обычно с экселем всё сложнее и приходится писать отдельный код считывания под каждый вид таблицы.
Именно так. Вы автоматизируете ввод таблиц а через неделю у вас появятся таблицы с другим количеством столбцов еще через пару дней вам столбцы по другому обзовут/переставят, потом сменят тип данных, потом получите xls, odt, csv,… вместо xlsx и так далее…

Все зависит от задачи, но обычно кончается все одним из трех способов.

1 Вы пишете импортировщик и отдаете его тем кто делает файлы эксела и они уже сами заносят данные в СУБД (если что не так, то они сами разбираются)
2. Вы пишете десктопное приложение которое теоретически не позволяет неправильно вводить данные (это одна из основных причин создания таких приложений). Далее отдаете приложение поставщикам данных и наотрез отказываетесь принимать xls файлы. Поставщикам данных поначалу плохо вам поначалу тоже плохо но греет душу что в перспективе будет хорошо.
3. Ежик импортирует данные колется но продолжает есть кактус. Можно нанять штат девочек которые будут колоться вместо вас и будут исправлять 3 очевидных ошибки и вносить 5 неочевидных.

Я бы для постоянной работы рекомендовал десктоп или веб приложение, для разового импорта импортирующий скрипт.

p.s.

Очевидно еще понадобится psycopg2.
pandas для этой задачи тяжеловат, не рекомендую. По идее достаточен xlrd.
В пакостных случаях может потребоваться win32com (им вы можете например парой строк скинуть csv а дальше не думать о экселе вообще).

Если решаться на десктоп то pyqt,pyside,wxpython.



Офлайн

#9 Июль 31, 2019 15:54:43

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

Вставлю свои пять копеек. Перво-наперво какой формат Excell использован в исходных документах: “старый” формат xls или “новый” формат xlsx? Для чтения данных из таблиц “старого” и “нового” формата используются разные библиотетки. Если пойдут, в дальнейшем, в формате ods, то потребуется ещё одна библиотека для чтения из таких документов. Присмотрись внимательно к советам от doza_and

Офлайн

#10 Авг. 3, 2019 02:03:58

ZiG
Зарегистрирован: 2018-12-16
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)

angelo_lagusa
ты не понял. Это было все на автомате.
1) Копируешь все разом из экселя в блокнот.
2) Пользуешься стандартными методами, что бы перенести инфу из блокнота, куда тебе нужно. Без всяких сторонних библиотек.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version