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

Posted

技术标签:

【中文标题】从html到xls的生成。警告“文件格式与文件扩展名指定的格式不同”【英文标题】:The generation from html to xls. Warning "The file format differs from the format that the file name extension specifies" 【发布时间】:2015-05-27 12:43:12 【问题描述】:

生成的 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();

【问题讨论】:

见:***.com/questions/30391879/… Excel spreadsheet generation results in "different file format than extension error" when opening in excel 2007的可能重复 那是因为生成的 xls 文件不是原生格式的 BIFF 文件,而是简单的 html 标记......所以 MS Excel 知道你是在告诉它,试图假装它是xls 文件。解决办法要么说实话,为你的文件使用html扩展名,要么创建一个真正的BIFF格式的xls文件 【参考方案1】:

根据微软的支持页面:

警告消息是添加到的用户通知功能 Excel 2007。警告消息有助于防止出现意外问题 这可能是由于之间可能不兼容而发生的 文件的实际内容和文件扩展名。

因此,有了这个,您的问题在于您将带有文件扩展名的 HTML 内容保存为 .xls,因此,Excel 将始终抛出该警报,因为文件内容与文件扩展名不同,无论内容是什么您指定的类型。

https://support.microsoft.com/en-us/kb/948615

【讨论】:

以上是关于从html到xls的生成。警告“文件格式与文件扩展名指定的格式不同”的主要内容,如果未能解决你的问题,请参考以下文章

什么是 XLSHTML?

xls-xml 文件到 CSV

请求rails时编码xls文件

使用python从xls坐标文件中生成面要素

Java 处理 Excel:从 POI 到 SPL

如何使用java编写一个从指定的TXT文件每行固定位置抓取数据并生成一个xls表自动保存的程序?