[英]Export jtable to excel in javascript on IE
There are many ways to export html table to excel, but what about jtable as it does not contain html tags like <table>
in the page, it just calls by id like <div id="table"></div>
有很多方法可以将html表导出为excel,但是jtable呢,因为它在页面中不包含<table>
这样的html标签,它只是通过id调用,例如<div id="table"></div>
I have simple solution which is working on Chrome, but not working on IE 我有一个简单的解决方案,它可以在Chrome上运行,但不能在IE上运行
Button to export: 导出按钮:
<a id="dlink" onclick="tableToExcel('StudentTableContainer', 'name', 'TestExcelFile.xls')">Export to excel</a>
Jtable: Jtable:
<div id="StudentTableContainer"></div>
Javascript: Javascript:
var tableToExcel = (function () {
var uri = 'data:application/vnd.ms-excel;base64,'
, template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
, base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
, format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
return function (table, name, filename) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML }
document.getElementById("dlink").href = uri + base64(format(template, ctx));
document.getElementById("dlink").download = filename;
document.getElementById("dlink").click();
}
})()
I am using vb.net to get the sql values for jtable 我正在使用vb.net获取jtable的sql值
In order to have all the rows exported you can create another jtable without paging that you load only before exporting and which is invisible to the end user. 为了导出所有行,您可以创建另一个jtable而不分页,该分页仅在导出前加载,并且对最终用户不可见。 Should be something like: 应该是这样的:
$('#PersonTable').jtable({
//...
paging: false, //Set paging disabled
actions: {
//...
},
fields: {
//...
}
});
After you have the full jtable you can export it with the solution from this forum . 拥有完整的jtable之后,您可以将其与本论坛中的解决方案一起导出。 You can specify in this second jtable only the columns that you want to export in excel. 您可以在第二个jtable中仅指定要在excel中导出的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.