我使用了以下代码。我可以下载扩展名为.xls的文件。当我打开这个下载的文件时,我收到了这个警告:
您尝试打开的文件“Statement.xls”与众不同 格式比文件扩展名指定的格式。验证文件是否正确 没有损坏,并且在打开文件之前来自受信任的来源。做 你想现在打开文件吗?
Javascript代码:
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.ms-excel;" });
saveAs(blob, "Statement.xls");`
HTML code:
`<table id="exportable">
<tbody>
<tr><th>ColumnOne</th><th>ColumnTwo</th><th>ColumnThree</th></tr>
<tr><td>row1Col1</td><td>row1Col2</td><td>row1Col3</td></tr>
<tr><td>row2Col1</td><td>row2Col2</td><td>row2Col3</td></tr>
<tr><td>row3Col1</td><td>row3Col2</td><td>test</td></tr>
</tbody>
</table>`
外部图书馆:
https://rawgithub.com/eligrey/FileSaver.js/master/FileSaver.js
答案 0 :(得分:2)
Office和Excel能够处理两种不同的文件格式。由于这些格式与内部完全不同(旧格式是二进制格式,新格式只是压缩XML格式)不同的扩展名和mimetypes被分配给这些格式。 显然,您正在使用新格式创建文件并为其分配旧扩展名。 Excel抱怨这一点。
将您的代码更改为:
$('#img1').click(function(){
$('#img2').show();
});
为了便于学习,您可能希望使用十六进制编辑器查看创建的文件。 其他人有类似的问题,请看这里:https://github.com/eligrey/FileSaver.js/issues/139
答案 1 :(得分:0)
使用* .xls扩展名保存文件时,文件类型应设置为“application / xls”
由于文件类型和扩展名将匹配,因此您不应收到任何警告。