所有浏览器都支持Excel响应吗?

0 投票
2 回答
608 浏览
提问于 2025-04-16 19:36

我正在用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文件,你可以试试看,看看它会怎么处理。

撰写回答