Найти - Пользователи
Полная версия: Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)
Начало » Python для новичков » Перенос excel в Dbeaver(базы данных) без потери данных(column types, date format, separator)
1
angelo_lagusa
Добрый день ребята.
Решил сделать 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
Rodegast
Тебе для этого Dbeaver вообще не нужен. Просто считывай данные из файла и пиши их в базу.
angelo_lagusa
Rodegast
Тебе для этого Dbeaver вообще не нужен. Просто считывай данные из файла и пиши их в базу.
А какие библиотеки питона нужны для считывание?
Rodegast
> А какие библиотеки питона нужны для считывание?

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

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

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

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

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

p.s.

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

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

Rafik
Вставлю свои пять копеек. Перво-наперво какой формат Excell использован в исходных документах: “старый” формат xls или “новый” формат xlsx? Для чтения данных из таблиц “старого” и “нового” формата используются разные библиотетки. Если пойдут, в дальнейшем, в формате ods, то потребуется ещё одна библиотека для чтения из таких документов. Присмотрись внимательно к советам от doza_and
ZiG
angelo_lagusa
ты не понял. Это было все на автомате.
1) Копируешь все разом из экселя в блокнот.
2) Пользуешься стандартными методами, что бы перенести инфу из блокнота, куда тебе нужно. Без всяких сторонних библиотек.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB