1. 程式人生 > >前臺 js 匯出excel

前臺 js 匯出excel

表格樣式

前臺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();
                
                
                
            }
        })()