Форум сайта python.su
Привет Всем! Начал разбираться с модулем 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?
Буду очень благодарен за разъяснения.
Офлайн
По умолчанию у модуля стоит диалект excel, зачем менять разделитель на пробел?
Офлайн
GriffonОк спасибо! попробуем
По умолчанию у модуля стоит диалект excel, зачем менять разделитель на пробел?
Отредактировано (Апрель 13, 2010 15:47:48)
Офлайн
Попробовал сам, dialect=“excel-tab” мой эксель открывает нормально.
Вообще разделитель между столбцами, как я понял, “\t”.
upd: и конец строки “\r” или “\n”.
То есть delimiter=“\t”, lineterminator=“\n”.
Отредактировано (Апрель 13, 2010 16:04:27)
Офлайн
GriffonСпасибо за пояснения!
Попробовал сам, dialect=“excel-tab” мой эксель открывает нормально.
Вообще разделитель между столбцами, как я понял, “\t”.
upd: и конец строки “\r” или “\n”.
То есть delimiter=“\t”, lineterminator=“\n”.
writer = csv.writer(f,dialect="excel-tab")
writer = csv.writer(f,delimiter="\t")
Отредактировано (Апрель 13, 2010 18:40:06)
Офлайн
Все пардон,работает! просто я нереально тупил)))
Еще раз спасибо!
Офлайн
А что было не так? Столкнулась с такой же проблемой.
Офлайн
reychalЭм… я точно не помню, но вроде в самом excel затупил))))
А что было не так? Столкнулась с такой же проблемой.
Офлайн