Striver
Но обычно с экселем всё сложнее и приходится писать отдельный код считывания под каждый вид таблицы.
Именно так. Вы автоматизируете ввод таблиц а через неделю у вас появятся таблицы с другим количеством столбцов еще через пару дней вам столбцы по другому обзовут/переставят, потом сменят тип данных, потом получите xls, odt, csv,… вместо xlsx и так далее…
Все зависит от задачи, но обычно кончается все одним из трех способов.
1 Вы пишете импортировщик и отдаете его тем кто делает файлы эксела и они уже сами заносят данные в СУБД (если что не так, то они сами разбираются)
2. Вы пишете десктопное приложение которое теоретически не позволяет неправильно вводить данные (это одна из основных причин создания таких приложений). Далее отдаете приложение поставщикам данных и наотрез отказываетесь принимать xls файлы. Поставщикам данных поначалу плохо вам поначалу тоже плохо но греет душу что в перспективе будет хорошо.
3. Ежик импортирует данные колется но продолжает есть кактус. Можно нанять штат девочек которые будут колоться вместо вас и будут исправлять 3 очевидных ошибки и вносить 5 неочевидных.
Я бы для постоянной работы рекомендовал десктоп или веб приложение, для разового импорта импортирующий скрипт.
p.s.
Очевидно еще понадобится psycopg2.
pandas для этой задачи тяжеловат, не рекомендую. По идее достаточен xlrd.
В пакостных случаях может потребоваться win32com (им вы можете например парой строк скинуть csv а дальше не думать о экселе вообще).
Если решаться на десктоп то pyqt,pyside,wxpython.