Использование библиотеки Tablib с Web2py

Некоторое время я пытался заставить tablib работать с web2py без удачи. Код доставляет файл.xls, как и ожидалось, но он поврежден и пуст.

import tablib 
data = []

headers = ('first_name', 'last_name')
data = tablib.Dataset(*data, headers=headers)

data.append(('John', 'Adams'))
data.append(('George', 'Washington'))


response.headers['Content-Type']= 'application/vnd.ms-excel;charset=utf-8'
response.headers['Content-disposition']='attachment; filename=test.xls'
response.write(data.xls, escape=False)

Есть идеи?? Спасибо!

1 ответ

За http://en.wikipedia.org/wiki/Process_state, response.write задокументировано как служение

записать текст в тело выходной страницы

(мой акцент). data.xls это не текст - это бинарный материал! Чтобы убедиться, что это действительно является причиной вашей проблемы, попробуйте использовать data.csv вместо этого, и это должно работать, так как это текст.

Я считаю, что вам нужно использовать response.stream вместо этого, чтобы отправить "двоичный материал" в качестве вашего ответа (или в качестве вложения к нему).

Другие вопросы по тегам