Найти - Пользователи
Полная версия: При выводе данных в Excel из SQL не выводятся имена столбцов.
Начало » Python для новичков » При выводе данных в Excel из SQL не выводятся имена столбцов.
1
ATWAliv
Добрый день!

Начал изучать 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)
workbook.close()

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

Что можно делать, чтобы всё-таки данные переносились с именами столбцов.
Или хотя бы натолкните на мысль, что почитать, чтобы понять.
И в идеале не спрашивайте зачем такие извращения, я только учусь. Поэтому всё же интересен именно ответ на вопрос, а не предложение как это сделать другими способами.
Заранее благодарен.
ATWAliv
Основной вопрос: что нужно добавить в код выше, чтобы он дополнительно выгружал названия столбцов в Excel.
xam1816
Приложите текстовый файл,
приведите пример что вы хотите видеть в файле xlsx.(итоговый файл,который будет результатом работы программы)
ATWAliv
Не могу понять как добавлять больше одного файла.
Это изначальный текстовый.
Его просто копировал в Excel и там уже не помню, что делал, но делил через запятые каждую строку на отдельные столбцы. Всё получалось.

Далее получившийся Excel превращал с помощью Python в файл БД.

Планировал работать внутри Python именно с файлом БД, но не вижу результат.
Поэтому хочу снова этот файл БД перевести в Python только, чтобы он уже отображал все внесенные изменения.

С помощью кода выше получается, но он теряет имена столбцов. Не скажу, что конкретно сейчас это существенно, но проблема есть и интересно её решение. Может в будущем это как раз-таки будет уже существенно.
doza_and
Я думаю у вас неудачный подход к работе. Если у вас много таблиц, вы хотите атомарно вносить изменения, то гораздо лучше просто взять sqlite и вносить изменения только в него.
Все вопросы с экспортом импортом в эксель csv и т.п. сразу умрут.

Существует огромное число инструментов для интерактивной работы с файлами такого вида. Большое число инструментов это гораздо лучше и надежнее чем единственный доступный инструмент - exel

Возьмите например https://sqlitebrowser.org/
ATWAliv
но не вижу результат.
Все разультаты можно посмотреть в GUI.

Работать с базой из python не особо простое занятие, но научившись вы про остальные сложности забудете.

Те. мой совет - потратьте время на изучение sqlitebrowser и языка sql а не на многочисленные экспорты и импорты, коорые у вас никогда не закончатся.
ATWAliv
doza_and
Возьмите например https://sqlitebrowser.org/

Спасибо мил человек!
Скачал и всё запустилось!)

Единственное, что тут не в подходе дело.
Я просто изучаю именно Python, а не SQL, а саму SQL изучаю только как один из инструментов внутри языка.
Поэтому по факту, в ней не было большой необходимости.

Но тем не менее огромное спасибо еще раз, теперь я таки могу посмотреть те изменения, которые я вношу, и да, теперь действительно не придется повторно SQL импортировать в Excel, чтобы увидеть визуально изменения.
Хотя, если честно, вторую половину вопроса, я бы оставил открытой.

Если кто кто знает, как перенести и названия столбцов в Excel из SQL через Python то я всё еще хочу это узнать. Хотя бы для общего развития!
xam1816
ATWAliv
Или хотя бы натолкните на мысль, что почитать, чтобы понять.
На мой взгляд,если хочется передать таблицу в Excel, то сначала готовим csv, и его уже открываем в Excel
т.е преобразования такие:
текстовый файл =>список значений в python => csv =>Excel или в БД

Базы Данных - это вообще отдельная наука,которую нужно изучать и практиковать отдельно от Python
ATWAliv
Начал изучать Python
У новичков заметил есть проблема с мотивацией,они думают Зачем мне просто писать какие-то скучные простые алгоритмы,напишу-ка я что-нибудь полезное и интересное, программу какую-нибудь.
И появляются здесь с вопросами,а почему тут не получается,или тут ошибка.Когда говорят,что он взял “не по Сеньке шапку”,обижаются,что его недооценивают и все тут зазнайки,а по факту тут оценивают всего лишь результат,эффективность,перспективность,безопасность и тд. программы.
Поэтому совет - начни с простых алгоритмов и задач типа работы со строками,циклы,функции,списки,словари,кортежи и все в таком духе.Пытайся решать,то что здесь спрашивают новички,так поймешь вообще нужно ли тебе это все…
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