打开从html表导出的xls文件时发出警告
Warning when opening xls file which is exported from html table
我使用了以下代码。我可以下载扩展名为.xls的文件。当我打开这个下载的文件时,我收到这个警告:
您试图打开的文件"Statement.xls"位于另一个格式超过文件扩展名指定的格式。验证文件是否未损坏,并且在打开文件之前来自受信任的来源。做你想现在打开文件吗?
Javascript代码:
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.ms-excel;" });
saveAs(blob, "Statement.xls");`
HTML代码:
`<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
Office和Excel能够处理两种不同的文件格式。由于这些格式与内部完全不同(旧格式是二进制的,新格式只是压缩的XML),因此为这些格式分配了不同的扩展和mimetype。显然,您正在创建一个具有新格式的文件,并为其指定旧的扩展名。Excel对此表示不满。
将代码更改为如下所示:
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
saveAs(blob, "Statement.xlsx");
为了便于学习,您可能希望使用十六进制编辑器查看您创建的文件。其他人也有类似的问题,请查看此处:https://github.com/eligrey/FileSaver.js/issues/139
保存扩展名为*.xls的文件时,文件类型应设置为"application.xls"
由于文件类型和扩展名将匹配,因此不应该收到任何警告。
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 从头开始创建XLS文件
- 在localhost/intranet上嵌入DOC、PPT、XLS、PDF文件
- '的文件格式和扩展名;file.xls'don't与fileSaver.js匹配
- 我想将任何xml文件导出到excel文件(xls或制表符分隔)
- 如何编写验证函数以仅读取 XLS 和 XLSX 格式的 Excel 文件
- 使用 JavaScript 导出 XLS 文件,而不带 Active X 控件
- 需要将图像添加到轨道 2 中的现有 xls 文件中
- 分析JS实现中的XLS(Excel)文件
- 如何使用javascript将xslt文件下载到.xls
- 从R中的javascript(网页)中删除xls文件
- 从网站自动下载XLS文件
- 打开从html表导出的xls文件时发出警告
- 使用 javascript 读取 Xls 文件
- 如何将网站中的.xls文件导出为CSV文件
- 无法使用jquery从chrome浏览器下载.xls文件
- Angular JS -如何将Javascript对象导出为XLS文件
- 使用HTML5文件API在PHP服务器上上传.xls文件
- 是否有可能使用Node.js创建一个控制单元格类型的XLS excel文件?
- 从服务器下载xls文件时出现javascript错误