Использование библиотеки 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
вместо этого, чтобы отправить "двоичный материал" в качестве вашего ответа (или в качестве вложения к нему).