【发布时间】:2015-07-18 10:20:10
【问题描述】:
我正在使用 table2excel.js 插件以 JavaScript 将 HTML 表格下载到 Excel。下载表格时,我收到消息:“Excel 无法打开文件 'Test.xlsx',因为文件格式或文件扩展名无效。验证文件没有损坏并且文件扩展名与文件。”当我手动将下载文件的名称更改为“Test.xls”时,我可以正常打开文件(带有文件格式和扩展名不匹配的小警告)。
这里是 table2excel.js 的链接:https://github.com/rainabba/jquery-table2excel/blob/377b933ae6b04f4c1826acc24a2bb0a049933f8b/dist/jquery.table2excel.js
我尝试过的一些事情:
1. 我将 e.uri 从 "e.uri = data:application/vnd.ms-excel;base64," 更改为 "e.uri = "data:application/msexcel;base64,"
2.我变了
. . . 'return ( settings.filename ? settings.filename : "table2excel") + ".xlsx"';到
. . . 'return ( settings.filename ? settings.filename : "table2excel") + ".xls"';
(进行此更改时,该文件被保存为 Test.xls.xlsx 并且打开 .xlsx 文件仍然存在相同的问题)。
如何将文件保存为 .xls 而不是 xlsx?或者有没有办法在将文件保存为 .xlsx 的同时完成这项工作(大概是通过将格式与 .xlsx 扩展名匹配)?
注意:如果重要的话,文件 Test.xlsx 是“普通的”,只有一堆单元格中的文本。没有花哨的格式、字符等。文本全是字母数字,只有几个特殊字符,例如:",.#'/@"
如果有任何想法,非常感谢!
【问题讨论】:
-
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet? -
谢谢,但很遗憾,这不起作用。还是一样的问题。
-
您是否将
Base64字符串写入文件? -
我实际上不确定“Base64”字符串是什么或做什么。我对这一切都很陌生。我试图写入 excel 文件的唯一内容是表格的内容。您知道 Excel 如何尝试解释电子表格文件格式是否与扩展名 .xls 或 .xlsx 匹配?
-
在记事本中打开输出会看到什么?如果没有“特殊”字符,则您已将
Base64输出写入文件而不是 Excel 文档。
标签: javascript html excel