我有一个页面包含一些基于先前输入过程的表。然后我添加下载excel-file按钮,访问者可以获得excel格式的文件。但是,需要的是每个表格都会显示在结果页面中,而不是在单独的工作表中生成。
我尝试的是
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 = '.tabel_hasil';
name = 'table';
filename = 'aaa.xls';
tables = [];
if (!table.nodeType) {
for (i = 2; i <= ($('.tabel_hasil').length + 1); i++) {
tables.push($(".tabel_hasil:nth-of-type(" + i + ")").html());
}
}
var ctx = {worksheet: name || 'Worksheet', table: tables};
document.getElementById("dlink").href = uri + base64(format(template, ctx));
document.getElementById("dlink").download = filename;
document.getElementById("dlink").click();
};
})();
结果是表总是出现在单个工作表中。 是否有任何解决方案或修改或其他?