将 html 导出到 Excel :尝试打开文件时会提示文件已损坏
Export html to Excel : when try to open file it gives prompt like file is corrupted
我在浏览器上使用 javascript 代码将 html table 导出到 excel。
全部完成,但是当我尝试在 Microsoft excel 中打开文件时,它会提示如下:
"Excel cannot open the file 'filename.xlsx' because the file format for the file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.Do you want to open file now?"
如果我按是它工作正常并且所有数据都在 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();
}
据我了解,您实际上并不是在构建 .xls 文件。您只是创建了一个扩展名为 .xls 的 HTML 文件。那不一样。 Excel 似乎能够读取您的 HTML,但它会警告您,因为文件格式和扩展名不匹配。
如果您想构建真正的 xls 文件,请查看执行此操作的各种库,例如:
https://github.com/SheetJS/js-xlsx
最终似乎无法绕过此警报。如果我将 HTML 代码转换为 excel 在 excel 中打开的数据,那么我实现了服务器端代码以生成纯 excel 和 return 给客户端而不是 HTML 数据。
我在浏览器上使用 javascript 代码将 html table 导出到 excel。 全部完成,但是当我尝试在 Microsoft excel 中打开文件时,它会提示如下:
"Excel cannot open the file 'filename.xlsx' because the file format for the file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.Do you want to open file now?"
如果我按是它工作正常并且所有数据都在 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();
}
据我了解,您实际上并不是在构建 .xls 文件。您只是创建了一个扩展名为 .xls 的 HTML 文件。那不一样。 Excel 似乎能够读取您的 HTML,但它会警告您,因为文件格式和扩展名不匹配。
如果您想构建真正的 xls 文件,请查看执行此操作的各种库,例如: https://github.com/SheetJS/js-xlsx
最终似乎无法绕过此警报。如果我将 HTML 代码转换为 excel 在 excel 中打开的数据,那么我实现了服务器端代码以生成纯 excel 和 return 给客户端而不是 HTML 数据。