Форум сайта python.su
import xlwt as xl
x = xl.Workbook()
x.add_sheet(u'Лист1')
x.save('123.xls')
Отредактировано (Ноя. 23, 2009 11:10:18)
Офлайн
В начале файла
# coding:utf-8
Офлайн
есть
Офлайн
>>> x.add_sheet(u'Лист1'.encode('cp1251'))
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
x.add_sheet(u'Лист1'.encode('cp1251'))
File "D:\Python26\lib\encodings\cp1251.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-3: character maps to <undefined>
Офлайн
regallсовсем недавно на форуме обсуждалось нечто подобное. мало указать кодировку, нужно еще и файл сохранить в этой кодировке :). при соблюдении этих условий библиотека работает корректно.
В начале файла
Код:
# coding: utf-8
есть?
Офлайн
pyuserы, как-то упустил это, так как у меня Эклипс уже кто-знает сколько глобально настроен на utf-8, то с проблемой не сталкивался давно =)
файл сохранить в этой кодировке smile
Офлайн
О_о'
Мне казалось что эклипс, что емакс-что pyscripter при указании кодировки в первой строчке сохраняет файл именно в той кодировке… Мб оп пишет в стандартном блокноте? +)
Офлайн
offtop:
ZubchickPydev, насколько мне известно, нет, он сохраняет файлы в кодировке, которая установлена для текущей папки проекта, а в последнем вообще появилась монстрячая фича: автоопределение кодировки (если чесно, то очень хреново работает, лучше б они там поставили return ‘utf-8’ :D)
кодировки в первой строчке сохраняет файл именно в той кодировке…
Офлайн
Zubchickпользуюсь IDLE 2.6 …
Мб оп пишет в стандартном блокноте? +)
Офлайн
и все-таки что я делаю неверно?
файл в utf-8
# -*- coding: utf8 -*-
import xlwt as xlw
#работаем с экселем
class cxlslog:
filename = ""
wl = None
def __init__(self,fname):
self.wl = xlw.Workbook()
self.filename = fname
def addlist(self,lname):
self.wl.add_sheet(lname)
def save(self):
self.wl.save(self.filename)
#работаем с экселем
Отредактировано (Ноя. 26, 2009 13:54:58)
Офлайн