Найти - Пользователи
Полная версия: Вопрос по модулю csv
Начало » Python для новичков » Вопрос по модулю csv
1
apologize828
Привет Всем! Начал разбираться с модулем csv и появился такой вопрос:
Имеется функция которая сохраняет данные из БД в csv файл, и затем когда я открываю этот файл в Excel я вижу что все данные разбиты по строкам.
Вопрос такой: возможно ли сделать так, чтобы запись данных происходила по ячейкам Excel а не по строчно.
Например:в записываемой строке есть такие данные(№,Имя,Фамилия) надо чтобы все данные строки были в отдельной ячейке?
вот мой код:
 
def save_as(self):
self.dialog_save=QtGui.QFileDialog()
self.path=self.dialog_save.getSaveFileName()

if self.path:
print(self.path)
sum=0
name=[]
surname=[]
query=QtSql.QSqlQuery()
query.exec("SELECT * FROM persons")
query.exec_()
while query.next():
sum+=1
name.append(str(query.value(1)))
surname.append(str(query.value(2)))

f = open(file=self.path,mode="w")
try:
writer = csv.writer(f,delimiter=" ")
writer.writerow( ('№', 'Имя', 'Фамилия') )
for i in range(sum):
writer.writerow( (i+1, (name[0+i]), (surname[0+i]) ))
finally:
f.close()
P.S. или это невозможно и разбивать придется самому в Excel?
Буду очень благодарен за разъяснения.
Griffon
По умолчанию у модуля стоит диалект excel, зачем менять разделитель на пробел?
apologize828
Griffon
По умолчанию у модуля стоит диалект excel, зачем менять разделитель на пробел?
Ок спасибо! попробуем
ЭЭЭ! убрал вообще delimiter и теперь все тоже самое, только данные отделяются друг от друга через запятую.Так и должно быть?
Griffon
Попробовал сам, dialect=“excel-tab” мой эксель открывает нормально.
Вообще разделитель между столбцами, как я понял, “\t”.

upd: и конец строки “\r” или “\n”.
То есть delimiter=“\t”, lineterminator=“\n”.
apologize828
Griffon
Попробовал сам, dialect=“excel-tab” мой эксель открывает нормально.
Вообще разделитель между столбцами, как я понял, “\t”.

upd: и конец строки “\r” или “\n”.
То есть delimiter=“\t”, lineterminator=“\n”.
Спасибо за пояснения!
Попробовал так:
 writer = csv.writer(f,dialect="excel-tab")
Все также данные разделяются через запятую,в блокноте отображаются почти нормально по столбцам(первая строка только поплыла чуть-чутьна,жму TAB-все встает как надо жму сохранить и все равно такая-же фигня в Excel(((
Попробовал так:
 writer = csv.writer(f,delimiter="\t")
Данные разделяются каким-то знаком вопросом,Но в блокноте все как выше!
Че-то не догоняю че за фигня,это не может быть связано с версией питона( у меня 3),или может еще какие есть причины или я все-же чето не так сделал в коде?
Есть еще идеи?
ладно буду пока думать дальше.
apologize828
Все пардон,работает! просто я нереально тупил)))
Еще раз спасибо!
reychal
А что было не так? Столкнулась с такой же проблемой.
apologize828
reychal
А что было не так? Столкнулась с такой же проблемой.
Эм… я точно не помню, но вроде в самом excel затупил))))
После того как откроешь сам файл в excel, сверху в меню надо выбрать Данные->там в разделе работа с данными->Текст по столбцам. И вот там то и смотри!
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