2016-10-12 7 views
1

Я ищу, чтобы сгенерировать книгу Excel на основе ввода от пользователей в HTML-форме. После отправки формы скрипт Python сгенерирует файл и отправит его пользователю. Я использую xlsxwriter для создания электронной таблицы.Служить Excel 2007 файл, созданный Python

Я смог создать образец файла, а затем предоставить ссылку на него, но я хочу создать файл в памяти, чтобы не было очистки.

Мой код создает файл и отправляет его на меня, но когда я пытаюсь открыть его в Excel, я получаю сообщение о том,

Excel найти не удается прочитать содержимое «sample.xlsx». Вы хотите восстановить содержание этой книги? Если вы доверяете источнику этой книги, нажмите «Да».

Если я нажму «да», я получу чистый лист. Если я открою его в текстовом редакторе, я вижу, что файл не пуст; файл размером 6k. Нужно ли мне менять свой контент? Или сделать некоторые другие изменения?

#!/Temp/Python27/python 
import io 
from sys import stdout 
import xlsxwriter 

output = io.BytesIO() 

workbook = xlsxwriter.Workbook(output) 
worksheet = workbook.add_worksheet() 
worksheet.write(1, 1, 'Hello, world!') 
workbook.close() 

contents = output.getvalue() 
output.close() 

print('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\nContent-Disposition:attachment; filename="sample.xlsx"\n') 
print (contents) 

ответ

1

Я продолжил поиски после того, как я отправил свой вопрос и нашел ответ here

+0

Смотрите также этот пример из XlsxWriter документации [Простой HTTP-сервер с XlsxWriter (Python 2)] (https: //xlsxwriter.readthedocs .io/example_http_server.html). Существует также [пример Python 3] (https://xlsxwriter.readthedocs.io/example_http_server3.html). – jmcnamara