XlsxWriter导出文件有时无法通过Numbers打开

时间:2018-02-09 18:43:17

标签: python django numbers libreoffice xlsxwriter

这是一个服务器渲染文件,因此它被保存到带有{"in_memory": True}的Django HttpResponse

在QA测试期间,有时无法通过Numbers打开文件。它说

"calendar.xlsx" can't be opened right now.
The file format is invalid.

然而它在LibreOffice中打开就好了。这里没有人使用Windows所以我还没有测试Excel。我可以从文件中找到哪些信息可以提供更多信息?

1 个答案:

答案 0 :(得分:1)

ZipFile确实不是罪魁祸首。结果是使用Django HttpResponse实例作为XlsxWriter Workbook将写入的类文件对象。它期望处理文本,因此它编码所有内容。如果你先写文件,然后使用文件的最后字节串构造HttpResponse,那就没问题了。任何二进制文件都是如此。