打开从html表

时间:2015-11-25 06:05:16

标签: javascript angularjs

我使用了以下代码。我可以下载扩展名为.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

2 个答案:

答案 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”

由于文件类型和扩展名将匹配,因此您不应收到任何警告。