之前都是用Java在后端做的導出,這次表格數據做的比較麻煩,就直接在前端把table導出了,非常方便。
博客文章鏈接:https://www.zjhuiwan.cn/info/20200212/4004242219096560.html
html表格代碼
JS代碼
方法1
//導出excel
function toExcel(){
//window.location.href='<%=basePath%>pmb/excelShowInfo.do';
//獲取表格
var exportFileContent = document.getElementById("table_report").outerHTML;
//設置格式為Excel,表格內容通過btoa轉化為base64,此方法只在文件較小時使用(小於1M)
//exportFileContent=window.btoa(unescape(encodeURIComponent(exportFileContent)));
//var link = "data:"+MIMEType+";base64," + exportFileContent;
//使用Blob
var blob = new Blob([exportFileContent], {type: "text/plain;charset=utf-8"}); //解決中文亂碼問題
blob = new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
//設置鏈接
var link = window.URL.createObjectURL(blob);
var a = document.createElement("a"); //創建a標簽
a.download = "企業反映問題訴求匯總表.xls"; //設置被下載的超鏈接目標(文件名)
a.href = link; //設置a標簽的鏈接
document.body.appendChild(a); //a標簽添加到頁面
a.click(); //設置a標簽觸發單擊事件
document.body.removeChild(a); //移除a標簽
}
簡單的table導出為excel就好了。
`有幾個問題需要注意
1、導出的excel沒有邊框,如下圖。解決辦法:table 需要加border="1";
2、表名加粗可以加個<h2></h2>
3、需要導出但是頁面不需要顯示的可以table中加display:none
4、導出的excel打開會提示不安全,如下圖:
這個還未解決..明天看看咋搞。應該是js導出格式的問題,強行成了excel。親測后端用Java導不會有此問題的,
不過要excel不提示此種類型錯誤(一般客戶下載文件可不願意改),可以:
1鍵盤同時按下“Ctrl+R”,打開“運行”,輸入“regedit”打開“注冊表編輯器”
2找到“HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Security”選項,也可以在“查看”中勾選“地址欄”將路徑復制到地址欄中。根據版本不同也可能是14.0(Office 2010)等等,根據情況而定。
3在空白右鍵單擊並且新建,選擇“DWORD(32-位)值(D)”。此時列表下會出現一個”新值#1“的項。
4選中”新值#1“右鍵單擊,選擇“重命名”,將名字改為“ExtensionHardening”,注意區分大小寫。
5選中剛剛修改的“ExtensionHardening”,右鍵單擊“修改”。
6將數值改為0,並且保持默認的是十六進制不變,然后點擊確定完成設置。
再打開就不提示了...



