js将excel转为html,js中表格转为excel文件如何实现多sheet形式

js中表格转为excel文件如何实现多sheet形式

var idTmr;

function getExplorer() {

var explorer = window.navigator.userAgent ;

//ie

if (explorer.indexOf("MSIE") >= 0) {

return 'ie';

}

//firefox

else if (explorer.indexOf("Firefox") >= 0) {

return 'Firefox';

}

//Chrome

else if(explorer.indexOf("Chrome") >= 0){

return 'Chrome';

}

//Opera

else if(explorer.indexOf("Opera") >= 0){

return 'Opera';

}

//Safari

else if(explorer.indexOf("Safari") >= 0){

return 'Safari';

}

}

function toExcel(tableid) {

if(getExplorer()=='ie')

{

var curTbl = document.getElementById(tableid);

var oXL = new ActiveXObject("Excel.Application");

var oWB = oXL.Workbooks.Add();

var xlsheet = oWB.Worksheets(1);

var sel = document.body.createTextRange();

sel.moveToElementText(curTbl);

sel.select();

sel.execCommand("Copy");

xlsheet.Paste();

oXL.Visible = true;

try {

var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");

} catch (e) {

print("Nested catch caught " + e);

} finally {

oWB.SaveAs(fname);

oWB.Close(savechanges = false);

oXL.Quit();

oXL = null;

idTmr = window.setInterval("Cleanup();", 1);

}

}

else

{

tableToExcel(tableid,'测试','项目收付明细表.xls')

}

}

function Cleanup() {

window.clearInterval(idTmr);

CollectGarbage();

}

var tableToExcel = (function () {

var uri = 'data:application/vnd.ms-excel;base64,'

, template = '

' +

'

' #table thead{width:100%;z-index:5;}\n' +

' #table td{overflow: hidden;text-overflow: ellipsis;white-space: nowrap;table-layout: fixed;padding-right: 0;}\n' +

' #table .project_title{background-color: #88e1ff;font-weight: bold;}\n' +

' #table .batch_title {font-weight: bold}\n' +

' #table .not_end{color: red;}\n' +

' #table tbody tr>td{text-align: left;padding-left: 5px;}'+

' .not_charge{color: blue}\n' +

' .charge{color: green}\n' +

' .pay_month{color: purple}\n' +

' '+

'

'

, 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 }

let blob = new Blob([format(template, ctx)]);

document.getElementById("dlink").href = URL.createObjectURL(blob);

document.getElementById("dlink").download = filename;

document.getElementById("dlink").click();

}

})()

请问该怎么写才能实现呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值