Добрый день!
Начал изучать 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 отправляются только сами данные, а имена столбцов пропадают.
Что можно делать, чтобы всё-таки данные переносились с именами столбцов.
Или хотя бы натолкните на мысль, что почитать, чтобы понять.
И в идеале не спрашивайте зачем такие извращения, я только учусь. Поэтому всё же интересен именно ответ на вопрос, а не предложение как это сделать другими способами.
Заранее благодарен.