2011-04-28 63 views
0

我们有一个用PHP编写的Web应用程序,它使用PEAR Spreadsheet Excel Writer将MySQL查询结果导出到Excel文件。我正在通过以下标题开始下载:浏览器打开下载的Excel文件的错误版本的Excel

header("Content-Type: application/vnd.ms-excel"); 
header("Content-Transfer-Encoding: binary"); 
header("Cache-Control: must-revalidate"); 
header("Pragma: no-cache"); 
header("Content-Disposition: attachment; filename=myfile.xls"); 

据我可以告诉所有这些工作正常。所有用户都有Excel 97和2000.问题是当浏览器(专门用于IE7/8)提示保存时,“保存类型”默认为Excel 95,并且如果文件以该格式保存,显然存在一些兼容性问题。这些不是技术用户,因此要求他们更改文件类型会遇到或未命中。

我告诉我的客户我无法控制操作系统/浏览器在下载文件时对文件做什么,但我希望能够确认这一点。我还想知道是否有可能升级Excel 95并留下一些触角,所以Windows仍然认为这是一个可行的选择。

任何想法或输入赞赏。

+0

我可以确认它不会强迫它用Excel 97或2000打开它。 – 2011-04-28 19:46:39

回答

0

这是一个客户端问题,你无能为力。你的标题是正确的。他们将不得不更新他们的默认应用程序以打开XLS文件。

1

我认为您对windows 95 tenticles的评论仍然悬而未决,可能是正确的。

检查我的注册表,HKEY_CLASSES_ROOT/.xls的默认值为OpenOffice.org.Xls。

当我查找HKEY_CLASSES_ROOT/OpenOffice.org.Xls时,它有一个默认值“Microsoft Excel 97-2003 Worksheet”,我认为它是您实际需要的类型。在这之下,在HKEY_CLASSES_ROOT/OpenOffice/org.XLS/shell/open/command中是使用的实际命令 - 在我的机器上,这是“C:\ Program Files(x86)\ OpenOffice.org 3 \ program \ scalc .exe“-o”%1“,但我有OpenOffice,而不是Excel。你的将会不同。

检查这些条目,并查看该值是否对客户机器有意义。您可能会发现将.xls指向更高版本的Excel很容易。

在进行任何更改之前,请仔细记录您更改注册表FROM的方式 - 因此,如果它不起作用,您可以将其还原。