@ATWAliv

При выводе данных в Excel из SQL не выводятся имена столбцов?

Добрый день!

Начал изучать Python и работать с SQL и стало интересно, если, допустим у меня есть текстовый файл, как его перевести в Excel через Python и работать с ним.
Изначально решил просто его переделать в Excel и разделить по столбцам и ячейкам, что спустя некоторое время получилось.
Затем долго ломал голову, как работать с данным файлом через Python, чтобы при любых изменениях файла они сразу отображались.
Нашел решение воспользоваться библиотеками sqlite3 и pandas и перевести файл в формат БД.
Решение действенное, но с одним существенным минусом. Так как не нашел способа работы с БД, не могу видеть правильно ли перенеслись данные из Excel в SQL.
Вроде уже кучу разных штук скачал для работы с БД, но ни с одной так и не разобрался как работать, да и не особо хочется. Ближе всех была SQLite, но затык с тем, что не могу найти саму программу, есть только консоль, которая нафиг мне не нужна (если кто подскажет, что делать дальше после установки, буду очень благодарен).

Ну, и основной вопрос: решил обойти эту тему таким образом, что полученную и изменяемую БД хочу потом заново переводить в файл Excel, т.к. как я понял при внесении изменений в БД первоначальный файл Excel не изменяется, а изменений я не вижу.

Нашел решение на одном из сайтов и на практике оно работает, хоть до конца и не разобрался, что оно делает.

import sqlite3
import xlsxwriter

workbook = xlsxwriter.Workbook('xxx.xlsx')
worksheet = workbook.add_worksheet()

con1 = sqlite3.connect('xxx.db')
cur1 = con1.cursor()

cur1.execute("""SELECT * FROM xxx;""")
my_select = cur1.execute("""SELECT * FROM xxx;""")

for i, row in enumerate(my_select):
for j, value in enumerate(row):
worksheet.write(i, j, row[j])
workbook.close()


Но при использовании столкнулся с такой проблемой, что при выводе данных из БД в Excel в новый файл формата .xlsx отправляются только сами данные, а имена столбцов пропадают.

Что можно делать, чтобы всё-таки данные переносились с именами столбцов.
Или хотя бы натолкните на мысль, что почитать, чтобы понять.
И в идеале не спрашивайте зачем такие извращения, я только учусь. Поэтому всё же интересен именно ответ на вопрос, а не предложение как это сделать другими способами.
Заранее благодарен.
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Сначала разберись, что именно происходит в приведённом коде. Прям распиши построчно себе, что и зачем делается.
А затем надо в этот код добавить запись строки с именами столбцов перед записью самих столбцов.
Имена столбцов можно получить из БД запросом типа:
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы