所有浏览器都支持Excel响应吗?
我正在用Python开发一个网页应用。
但是客户想要一个工具,可以把当前页面导出到Excel里。
所以我不得不在每个页面(视图)里写额外的代码,用xlwt这个Python模块把表格转换成Excel格式。
不过我有一个更好的解决方案。这个方案是把当前页面的HTML内容发送到服务器,然后服务器会把这个HTML表格以Excel格式返回给我。
像这样:
response['Content-Type'] = 'application/vnd.ms-excel; charset=utf-8'
Response.ContentType = "application/vnd.ms-excel"
这个方法效果不错。不过我很好奇,所有浏览器都支持这种Excel格式的响应吗!???
如果不支持,那对我来说可就麻烦大了 :(
或者说,浏览器是否只在客户端电脑上安装了MS Excel或OpenOffice时才支持呢?
有没有其他“通用”的解决方案或想法呢?
2 个回答
2
像这样设置内容类型,是在告诉客户端这个文档有特定的类型——从某种意义上说,你是在对浏览器撒谎,告诉它你发送的是一个Excel电子表格,而实际上你发送的是一个HTML文档。这样做的结果是,浏览器会试着把它当作Excel电子表格来打开,而Excel会知道怎么导入HTML,所以它“能用”——正如你发现的那样。
如果客户端没有安装Excel,或者没有其他软件可以打开Excel文档,浏览器可能会提供保存文档的选项。反正它不会神奇地把它显示成一个电子表格。我不太明白你还期待什么呢?
1
把文件正确地转换成真正的Excel文件,绝对是最好的办法。
不过,如果你:
- 把文件名后缀改成 .XLS
- 发送正确的MIME类型
- 用户的电脑上安装了Excel或者其他可以处理XLS文件的程序
那么用“伪HTML当Excel”的方法应该也能正常工作。不过,我从来没有试过在OpenOffice里打开一个伪装成XML的HTML文件,你可以试试看,看看它会怎么处理。