我使用了 this question 中的 JavaScript 函数并尝试使其适应我的应用程序。它有效,但也可以改进,我希望你能帮助我做到这一点
这是函数
function exportExcelReport(tblId) {
var tab_text = "<table border='2px'><tr>";
var table = document.getElementById(tblId);
var style;
for (var j = 0; j < table.rows.length; j++) {
style = table.rows[j].className.split(" ");
if (style.length < 2)
tab_text = tab_text + table.rows[j].innerHTML + "</tr>";
}
tab_text = tab_text + "</table>";
tab_text = tab_text.replace(/<a[^>]*>|<\/a>/g, "");
tab_text = tab_text.replace(/<img[^>]*>/gi, "");
tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, "");
return window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));
}
表格是这样的
这是导出后的结果
如您所见,导出的 excel 文件在背景中没有网格,这实际上看起来很奇怪。您知道为什么会这样吗?
我还想删除最后一列,即 YTD 之后的那一列。是否可以通过某种方式调整上面代码中的 tab_text.replace(...),以便在导出时忽略它。
该列在 html 中看起来像这样
</td><td width='20px'>
<a class='infobox' href=''>
<img src='img/info.jpg' alt='info' width='18' height='18'>
<span>
Service Engineer: ... <br>
Datasource: ...
</span>
</a>
</tr>
提前致谢!
最佳答案
是的,我们可以通过 Jquery 做到这一点。
例子:
http://www.jqueryscript.net/demo/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel/
关于javascript - 是否可以改进 html 表导出到 xls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31025578/