导出到.xls的HTML表在使用FireFox下载时无法打开

时间:2016-07-18 17:28:43

标签: javascript html excel firefox xls

我正在使用我在stackoverflow上找到的函数。它在Internet Explorer和Google Chrome上运行良好,但在FireFox中使用时,无法在Excel中打开下载的文件。当我双击它或从Excel打开时,它会显示一个空白的工作簿。当我将此下载的文件从.xls转换为.html时,它会在之前提到的任何浏览器中正常打开。

关于我做错了什么以及如何解决它的任何想法?

提前致谢!

function fnExcelReport(){
var tab_text="<table border='2px'><tr bgcolor='#87AFC6'>";
var textRange; var j=0;
var tab = document.getElementById('GroupMembersTable'); // id of table
var sa
for(j = 0 ; j < tab.rows.length ; j++) 
{     
    tab_text=tab_text+tab.rows[j].innerHTML+"</tr>";
    //tab_text=tab_text+"</tr>";
}

tab_text= tab_text+"</table>";
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, ""); // removes input params

var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE "); 

if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
{
    txtArea1.document.open("txt/html","replace");
    txtArea1.document.write(tab_text);
    txtArea1.document.close();
    txtArea1.focus(); 
    sa=txtArea1.document.execCommand("SaveAs",true,"SecurityAudit.xls");
}  
else { //other browser not tested on IE 11
    sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));  
}
return (sa);
}

2 个答案:

答案 0 :(得分:2)

由于最近的Windows安全更新,我遇到了类似的问题。下载的文件被标记为已阻止。您需要转到文件属性,然后单击“取消阻止”按钮,然后在Excel中打开该文件。 Excel将不再打开我工作站上标记为已阻止的文件。

答案 1 :(得分:0)

您可以避免此安全问题&#34;在计算机或工作站上禁用来自Internet(受信任区域,Excel选项)的文件的受保护视图。

如果您下载该文件可以取消阻止,但如果您直接从excel中选择打开文件,请不要工作,直到您开始我提到的禁用过程。