簡體   English   中英

將html導出到Excel:當嘗試打開文件時,它會提示文件已損壞

[英]Export html to Excel : when try to open file it gives prompt like file is corrupted

我在瀏覽器上使用javascript代碼導出html表到excel。 全部完成但是當我嘗試在microsoft excel中打開文件時,它會提示如下:

“Excel無法打開文件'filename.xlsx',因為文件擴展名的文件格式無效。驗證文件是否已損壞,文件擴展名是否與文件格式匹配。您要立即打開文件嗎? ?”

如果我按是,它工作正常,所有數據都在excel中正確顯示。

我想刪除此提示。

我的JavaScript代碼是

function fnExcelReport()
{
var tab_text="<table border='2px'><tr bgcolor='#87AFC6'>";
var textRange; var j=0;
tab = document.getElementById('headerTable'); // id of table

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, ""); // 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
{
    txtArea1.document.open("txt/html","replace");
    txtArea1.document.write(tab_text);
    txtArea1.document.close();
    txtArea1.focus(); 
    sa=txtArea1.document.execCommand("SaveAs",true,"data.xls");
}  
 else{}             
    var a = document.createElement('a');
    a.href = 'data:application/vnd.ms-excel,' +  encodeURIComponent(tab_text);
    a.download = 'rxe_data' + '.xls';
    a.click();
}

最后,似乎無法繞過此警報。 如果我將HTML代碼轉換為excel在excel中打開的數據,那么我實現了服務器端代碼以生成純excel並將其返回給客戶端而不是HTML數據。

據我所知,您實際上並沒有構建.xls文件。 您只是創建一個擴展名為.xls的HTML文件。 那不一樣。 Excel似乎無論如何都能讀取你的HTML,但它會警告你,因為文件格式和擴展名不匹配。

如果您想構建真正的xls文件,請查看執行此操作的各種庫,例如: https//github.com/SheetJS/js-xlsx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM