Ваш формат листа Excel имеет большое количество столбцов, что также зависит от количества категорий, и SQL не очень хорошо приспособлен к этому.
Самый простой вариант:
Экспорт данных Excel в формате CSV.
Используйте сценарий python, чтобы прочитать его с помощью модуля CSV и вывести в формате COPY-удобные символы табуляции.
Загрузите это в базу данных (или вставьте непосредственно из сценария python).
Что-то в этом роде ...
import csv
with open('bookcat.csv') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
if row:
id = row[0].strip()
categories = row[1:]
for cat in categories:
cat = cat.strip()
if cat:
print("%s\t%s" % (id, cat))
версия вывода csv:
import csv
with open('bookcat.csv') as csvfile, open("out.csv","w") as outfile:
reader = csv.reader(csvfile)
writer = csv.writer(outfile)
for row in reader:
if row:
id = row[0].strip()
categories = row[1:]
for cat in categories:
cat = cat.strip()
if cat:
writer.writerow((id, cat))
Если вам нужен определенный c формат CSV, проверьте документы модуля CSV.