[英]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.