Excel文件另存为的标题头

3

我能够通过PHP输出Excel文件,并且在Excel中可以正确打开,没有任何问题。但是当用户在Excel中点击“另存为”时,将会出现第一个选项“.txt”,该如何设置标头,使得第一个选项是“.xls”?

目前我正在使用的标头是:

$filename="jaar.xls";
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename");
header("Pragma: no-cache");
header("Expires: 0");

提前感谢您。


$filename是什么?如果它是Something.xls,那可能就是你所能做的了;mime和扩展名。我有时会使用html-tables-to-excel快捷方式,但使用Pear中的Spreadsheet Writer库可以得到一个更本地化的解决方案。 - Hans
这是我使用的内容类型,没有任何问题。你可能会发现你的问题也是特定于浏览器的,但这并不能帮助你。 - Andrew Bullock
文件名 = jaar.xls 我希望它是那么简单,我已经把它添加到源代码中了。 - Grumpy
3个回答

1
如果你的名字里有空格,你应该尝试加引号:
header("Content-Disposition: attachment; filename='$filename'");

1

解决方案是使用PHPExcel http://phpexcel.codeplex.com/

如果xls文件是使用/t构建的,就像文本文件一样处理,Excel会将其处理为txt文件。


截至2019年5月,该项目已经停止维护。请寻找替代方案。 - icortesi

0
header("Content-Disposition: attachment; filename=".$filename);

这已足够保存为 Excel 文件


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接