2013-09-02 3 views
1
WINDOWS에 XLRD의 버전 0.9.2 및 파이썬 2.7을 사용하여

...XLRD 지원되지 않는 형식은

임 임시 파일을 만든 다음 최대한 빨리 시도로

data = self.excel_file 
path = default_storage.save('temp/temp.xls', ContentFile(data.read())) 
tmp_file = os.path.join(settings.MEDIA_ROOT, path) 
workbook = xlrd.open_workbook(tmp_file) 

XLRD

을 사용하여 파일을 읽는 발견

xlrd.biffh.XLRDError: Unsupported format found '\xd0\xcf\x11\xe0\xa1\xb1\x00\x00' 

그래서 나는 파일이 올바르게 저장되지 않았다고 생각합니다. 파일 필드에 django admin으로 파일을 업로드 할 때 작동하기 때문에 이것에 관해서는 무엇을해야할지 모르겠습니다. 모델을 장고에 파이썬이 같은 파일을 저장하는 위의 문제를 만들어

:이 유니 코드 문제가 될 수 있었던 것처럼

from django.core.files import File 

p = Foo() 
p.excel_file.save(file_name, File(data)) 
p.save() 

답변

1

그것은 나에게 보인다. 문자열에 비 ASCII 문자가있는 것 같습니까? 문자열을 xls에 저장할 때 .encode("utf-8")을 문자열과 함께 사용해보십시오.

EDIT : @Harry의 추가 조사가 올바른 해결책이 아닌 것처럼 보인 후에 이것은 추측이었습니다.

EDIT 2 : 아래에서 설명하는 것처럼 Excel에서 파일을 열 수없는 경우 데이터 자체가 문제 일 수 있습니다.

+0

이 뜻처럼> data.read(). encode ("utf-8")? – Harry

+0

예 - 그럴 가치가 있습니다. –

+0

그건 : UnicodeDecodeError : '아스키'코덱은 위치 0에서 0xd0 바이트를 디코드 할 수 없습니다. 서수가 범위 내에 있지 않습니다 (128) – Harry