【转载】JavaScript导出Excel
2018-07-17 04:15:05来源:博客园 阅读 ()
【转载】JavaScript导出Excel
原文地址
如果没有用到前端插件,也没有用到后台poi导出的话,用js导出也是一种方式。亲测可用。
/** * 导出excel */ 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 exportExcel(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",filename); } 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); } } function Cleanup() { window.clearInterval(idTmr); CollectGarbage(); } var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,', 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">'+ '.excelTable {'+ 'border-collapse:collapse;'+ ' border:thin solid #999; '+ '}'+ ' .excelTable th {'+ ' border: thin solid #999;'+ ' padding:20px;'+ ' text-align: center;'+ ' border-top: thin solid #999;'+ ' background-color: #E6E6E6;'+ ' }'+ ' .excelTable td{'+ ' border:thin solid #999;'+ ' padding:2px 5px;'+ ' text-align: center;'+ ' }</style>'+ '</head><body ><table class="excelTable">{table}</table></body></html>', 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) { if (!table.nodeType) table = document.getElementById(table) ; var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} ; // window.location.href = uri + base64(format(template, ctx)) ; document.getElementById("exportExcel").href = uri + base64(format(template, ctx)); document.getElementById("exportExcel").download = filename; // document.getElementById("exportExcel").click(); } ; })() ; function Cleanup() { window.clearInterval(idTmr); CollectGarbage(); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:vue实现未登录跳转到登录页面
下一篇:js加减乘除精确计算
- javascript面向对象入门基础详细介绍 2020-03-29
- JavaScript函数表达式详解及实例 2020-03-25
- 如何用javascript连接access数据库 2020-03-20
- js中去掉字串左右空格 2020-03-20
- Javascript中的经典技巧 2020-03-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash