前臺 js 匯出excel
阿新 • • 發佈:2018-12-18
表格樣式
前臺js方法:程式碼裡面的註釋很詳細,簡單說一下我這裡是有一個table,id為aa
function importExcel() { var tableid = "aa"; tableToExcel(tableid); }; var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,', template = '<html><head><meta charset="UTF-8"></head><body><table border="1">{table}</table></body></html>', base64 = function( s) { return window.btoa(unescape(encodeURIComponent(s))) }, format = function(s, c) { debugger; return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { var thead = $t("thead").clone();//待匯出的表頭 var tbody = $("#aa").clone();//待匯出的內容 var thead1 = thead; var tbody1 = tbody; var theadHtml = ""; var tbodyHtml = ""; //我這裡設定了隱藏列 所以需要刪除 可以根據 自己的需要重新拼接 需要匯出excel //刪除表頭的隱藏列 這裡可以直接remove 因為 這是克隆的 for(var i=0;i<4;i++){ $(thead1).find("th").eq(0).remove(); }; //這個是移除沒選的 $(tbody1).find("tr").each(function(i,n){ debugger; if(!$(n).find("td").eq(0).find("input").attr("checked")){ $(n).remove(); } }); //刪除表格的隱藏列 這裡可以直接remove 因為 這是克隆的 $(tbody1).find("tr").each(function(i,n){ for(var j=0;j<4;j++){ $(n).find("td").eq(0).remove(); }; }); theadHtml = $(thead1).html(); tbodyHtml = $(tbody1).html(); //拼接需要匯出的excel var tableHtml = theadHtml+tbodyHtml; var ctx = { worksheet: name || 'Worksheet', table: tableHtml } //方法1:直接下載 window.location.href = uri + base64(format(template, ctx))//不修改下載excel名就可以用這個 //方法2:寫一個隱藏的a標籤,id 是exportExcel //document.getElementById("exportExcel").href = uri + base64(format(template, ctx)); //document.getElementById("exportExcel").download = "機務橋載明細結算清單匯出為Excel";//這裡是修改下載的excel名稱 //document.getElementById("exportExcel").click(); } })()