Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从html到xls的生成。警告";文件格式与文件扩展名指定的格式不同;_Php_Excel_Warnings_Xls - Fatal编程技术网

Php 从html到xls的生成。警告";文件格式与文件扩展名指定的格式不同;

Php 从html到xls的生成。警告";文件格式与文件扩展名指定的格式不同;,php,excel,warnings,xls,Php,Excel,Warnings,Xls,生成的xls文件打开时(在MS Excel 2013中)出现警告 文件格式与文件扩展名指定的格式不同 指定 ,如果按“是”-文件完全打开,但我希望没有此警告。 代码片段: header("Content-Type: application/vnd.ms-excel; charset=windows-1251"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); h

生成的xls文件打开时(在MS Excel 2013中)出现警告

文件格式与文件扩展名指定的格式不同 指定

,如果按“是”-文件完全打开,但我希望没有此警告。 代码片段:

header("Content-Type: application/vnd.ms-excel; charset=windows-1251");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Disposition: attachment; filename=filename.xls);

echo<<<HTML
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
</head>
<body>
<table border="1" cellspacing="0" cellpadding="0">
/* many lines */
</table>
</body>
</html>
HTML
die();
标题(“内容类型:application/vnd.ms-excel;字符集=windows-1251”);
标题(“到期日:0”);
标头(“缓存控制:必须重新验证,后检查=0,前检查=0”);
标题('Content-Disposition:attachment;filename=filename.xls);

echo根据Microsoft的支持页面:

警告消息是添加到的用户通知功能 Excel 2007。警告消息有助于防止意外问题 这可能是因为 文件的实际内容和文件扩展名

因此,有了这个,您的问题在于您正在将文件扩展名为.xls的HTML内容保存为.xls,因此,Excel将始终引发该警报,因为文件内容与文件扩展名不同,无论您指定的内容类型如何


请参阅:可能重复的原因是生成的xls文件不是本机格式的BIFF文件,而是简单的html标记。。。。所以Excel女士知道你在告诉它porkie pies试图假装它是xls文件。解决方案是要么说实话,对文件使用html扩展名,要么创建一个真正的BIFF格式xls文件