2013-03-01 2 views
1

xlwt 모듈을 사용하여 텍스트를 저장하고 새 xls 문서를 만들고 텍스트를 저장하려고합니다. 유니 코드 텍스트를 발견 할 때까지는 큰 효과가있었습니다. 예를 들어 간단한 문자열 '80 ° '.xlwt 모듈 - xls 유니 코드 오류 저장

book.save('simple.xls')으로 전화하면 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2이됩니다. 피할 수있는 방법이 있습니까?

답변

3

일반 문자열을 쓰는 대신 유니 코드 문자열을 작성하십시오. 예를 들어,

ws.write(r, c, '80°') 

대신

는 (물론 데이터에 대한 적절한 인코딩을 선택합니다.)

ws.write(r, c, '80°'.decode('cp1252')) 

+0

내가 지금 비슷한 문제가 있습니다. 필자는 유니 코드 객체를 ws.write()에 전달하고있다. 위의 코드는 decode()를 사용하여 유니 코드 객체를 전달합니다. 나는 이것이 효과가 없을 것 같은 느낌이 든다. 지금은 실제로 ws.write()가 처리 할 수있는 좋은 오래된 문자열로 encode()를 변경해야한다고 생각합니다. 남아있는 것은 무엇이 코드화되어야하는지, 그리고 OpenOffice와 Excel이 모두 만족 스러울 지 여부입니다. – izak

+0

참조 @stackoverflow.com/questions/7184454/has-anyone-been-able-to-write-out-utf-8-characters-using-pythons-xlwt – izak

+1

@izak : 그냥 느낌 대신에 ", 너는 그것을 시도하고 확신하지 그래? 내 대답의 코드는 내 컴퓨터에서 작동하며 공식 설명서에 가장 가까운 것으로 제공된 지침을 따릅니다. [이 PDF by Chris Withers] (http://www.simplistix.co.uk/presentations/python -excel.pdf). (이 글의 마지막 부분 인 "유니 코드"부분을 보시기 바랍니다.) –