jQuery导出的文件在Excel中打开时显示错误

问题描述:

我已经从html表中使用jQuery导出了一个excel文件。虽然它出口非常好,但当使用Excel显示下面的错误时打开它jQuery导出的文件在Excel中打开时显示错误

'download.xls'的文件格式和文件扩展名不匹配。该文件可能已损坏或不安全。除非你信任它的来源,否则不要打开它。你还想打开吗?

我知道我们可以通过在服务器端创建excel或禁用系统注册表上的extension hardening来解决它。但是由于可用的资源有限,这两个选项都超出了我的范围,我只需要修复它的客户端。

示例Excel输出:

<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'><head><meta http-equiv="Content-type" content="text/html;charset=utf-8" /> 
<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>My Worksheet</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--> 
</head> 
<body> 
<table> 
<thead> 
<th>Name</th> 
<th>Class</th> 
</thead> 
<tbody> 
<tr> 
<td>Name 1</td> 
<td>Class 1</td> 
</tr> 
</tbody> 
<table> 
</body> 
</html> 

任何帮助将非常感激。

我相信你不能,因为“.xls”文件实际上是由HTML和CSS组成的。这就是它显示错误的原因。你不会考虑使用“.CSV”吗?

+0

你的意思是不是导出html标签,导出为csv格式? –

+0

是的。但这样做的缺点是CSV不会携带任何CSS,只是纯文本。由于该程序仅以逗号分隔的格式输出数据,并且如果您使用MS Office,Excel会自动将CSV文件识别为自己的文件。 –

+0

谢谢@Hardyson的建议。我认为不可能出口没有任何风格的excel。 –