我使用JS,HTML和CSS来构建我的应用程序并将其托管在服务器上。我使用以下代码将所有HTML表格导入到xls格式的Excel文件中。
function fnExcelReport(tableNames) {
var tab_text = "";
var arrTableNames = tableNames.split("|");
if (arrTableNames.length > 0) {
for (var i = 0; i < arrTableNames.length; i++) {
tab_text = tab_text + "<table border='1px'>";
tab = document.getElementById(arrTableNames[i]);
for (j = 0; j < tab.children.length; j++) {
tab_text = tab_text + tab.children[j].innerHTML;
}
tab_text = tab_text + "</table><br/><br/>";
tab_text = tab_text.replace(/<A[^>]*>|<\/A>/g, ""); //remove if u want links in your table
tab_text = tab_text.replace(/<img[^>]*>/gi, ""); // remove if u want images in your table
tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params
}
}
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer
{
if (window.navigator.msSaveBlob) {
var blob = new Blob([tab_text], {
type: "data:application/vnd.ms-excel;"
});
sa = navigator.msSaveBlob(blob, "report.xls");
}
} else //other browser not tested on IE 11
sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));
return (sa);
}
字符串
我可以下载文件并打开它,但当我打开它时,我收到以下警告消息:
的数据
单击“是”后,所有数据都正确显示在Excel文件中。我不想看到该警告消息。如何更改代码,使其以xlsx打开并删除警告消息?
2条答案
按热度按时间xzabzqsa1#
这是因为内容不是类型“xls”.即.如果Excel是类型“xlsx”你会得到这个错误.尝试与其他Excel扩展名与文件名.
j2cgzkjk2#
在您的代码中,blob不是Excel文件。因此,仅更改文件格式。无法生成正确的Excel文件。
有两种方法可以考虑。
1.使用JS Excel库。然后您只需使用JS Excel库API即可生成Excel。
1.使用服务器端的Excel库(如Java,.Net服务器)。这种方式需要您使用JS代码将Table数据传输到服务器,在服务器端生成Excel文件。然后使用JS代码下载Excel在服务器端生成。