我有一个经典的 asp 网站,其中包括将表数据导出/下载为 excel 文件 (.xls) 的功能。这是通过使用此代码块代替通常的 HTML 标头将用户重定向到新页面来完成的:
sub PutInTopOfXLS(FileName)
Response.Buffer = TRUE
Response.CharSet="UTF-8"
Response.CodePage=65001
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment;filename=" & FileName%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:x="urn:schemas-microsoft-com:office:excel">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
<!--table
br {mso-data-placement:same-cell;}
tr {vertical-align:top;}
-->
</style>
</head>
<body>
<%end sub
这适用于 Firefox、Internet Explorer 和 Safari(适用于 Mac 和 Windows)上的所有用户(或至少没有报告任何问题),并且适用于我使用 Chrome (20.0.1132.57) 的开发机器。但是,我的 QA 人员报告说,在网站上的几个特定报告中,它总是使用实际代码页名称 ReportFileName.asp 在 Chrome 上下载,然后他收到有关 .asp 文件没有文件关联的 Windows 错误。如果他确实选择了用 Excel 打开,则说明已经下载了正确的文件。我让我们办公室的另一个人下载Chrome,她没有问题;文件下载为 {filename}.xls 并正常打开。
我很困惑,因为对于 QA 人员来说,它只影响这一份报告,这表明问题出在特定报告中。但是,其他两个使用相同版本 Chrome 的用户没有遇到此问题,这表明这是他的 Chrome 设置中的问题。
我没有任何运气在谷歌上搜索解决方案或搜索 SO,所以我想我会把问题扔在那里,看看是否有人有任何想法。
非常感谢您的帮助。