前端導出eccel

此方法對table有效   導出原理:專程html代碼再使用類庫進行excel生成   

  親測對table有效  別的沒試!!!!!!!!

 

<table class="infoTable" id="tableInfo">

</table>

導出按鈕

<a download="table導出Excel" id="excelOut" href="#" onclick="c('tableInfo','導出信息')">導出信息</a>

方法代碼

//sheetName:頁碼名稱

function tableToExcel(tableid, sheetName) {

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

var 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]-->' +

' <style type="text/css">' +

'table td {' +

'border: 1px solid #000000;' +

'width: 200px;' +

'height: 30px;' +

' text-align: center;' +

'background-color: #4f891e;' +

'color: #ffffff;' +

' }' +

'</style>' +

'</head><body ><table class="excelTable">{table}</table></body></html>';

tableid = document.getElementById(tableid);

var ctx = {

worksheet: sheetName || 'Worksheet',

table: tableid.innerHTML

};

document.getElementById("excelOut").href = uri + base64(format(template, ctx));

}

 

 

var base64 = function (s) {

return window.btoa(unescape(encodeURIComponent(s)));

};

//替換table數據和worksheet名字

var format = function (s, c) {

return s.replace(/{(\w+)}/g,

function (m, p) {

return c[p];

});

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章