用js将HTML的Table导出为Excel优化版
来源:互联网 发布:mac日历收到垃圾邀请 编辑:程序博客网 时间:2024/06/04 19:33
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript" language="javascript"> 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 table2excel(tableid) {//整个表格拷贝到EXCEL中 if(getExplorer()=='ie') { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel var oWB = oXL.Workbooks.Add(); //获取workbook对象 var xlsheet = oWB.Worksheets(1); //激活当前sheet var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); //把表格中的内容移到TextRange中 sel.select(); //全选TextRange中内容 sel.execCommand("Copy"); //复制TextRange中内容 xlsheet.Paste(); //粘贴到活动的EXCEL中 oXL.Visible = true; //设置excel可见属性 try { var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls"); } catch (e) { print("Nested catch caught " + e); } finally { oWB.SaveAs(fname); oWB.Close(savechanges = false); //xls.visible = false; oXL.Quit(); oXL = null; //结束excel进程,退出完成 //window.setInterval("Cleanup();",1); 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))var downloadLink = document.createElement("a");downloadLink.href=uri + format(template, ctx);downloadLink.download='导出excel信息.xls';document.body.appendChild(downloadLink);downloadLink.click();document.body.romoveChild(downloadLink); } })()</script> </head><body><table width="100%" cellspacing="0" cellpadding="0" border="1px" id="test"><tr><th width="20%">姓名</th><th width="20%">性别</th><th width="20%">年龄</th><th width="20%">部门</th><th width="20%">角色</th></tr><tr><td>张三</td><td>男</td><td>28</td><td>销售部</td><td>经理</td></tr><tr><td>李四</td><td>男</td><td>27</td><td>研发部</td><td>项目总监</td></tr><tr><td>王燕</td><td>女</td><td>29</td><td>电子商务部</td><td>主管</td></tr></table><br><input id="Button1" type="button" value="导出EXCEL" onclick="javascript:table2excel('test')" style="padding:5px;margin-top:20px;"/></body></html>说明:创建一个A标签,设置A的download属性可以实现指定文件名
阅读全文
0 0
- 用js将HTML的Table导出为Excel优化版
- 将html中table的内容导出为excel
- HTML table 导出为 EXCEL
- js 导出 html 中的 table 表格为 excel
- Js导出Table为Excel
- JS 导出Table为excel
- 用JavaScript或python将html中的table导出为excel文件
- 用js 将HTML的内容导出到Excel文件
- 利用js将html表格导出为excel文件
- jsp将table导出成excel+用js将table导出excel,中文乱码问题解决方案+action层导出excel
- 导出Excel的方法,传入为table或html!
- HTML中Table导出为Excel---转载
- JS 导出Table为excel的三种可行方法
- JS导出Table为excel的三种可行性方案
- js 将table表格导出excel
- js实现HTML Table 导出为Excel格式(含合并列格式)
- 导出HTML的Table到Excel中
- html table表格导出excel的方法
- JAVA获取当前系统时间System.currentTimeMillis()
- SQL中CONVERT转化函数的用法
- PythonDemo 乘法表
- windows安装部署tomcat7
- hibernate之1----一个简单的应用
- 用js将HTML的Table导出为Excel优化版
- 数据库主键的设计和思考
- AngularJs:Directive指令用法(完整版)
- 性能测试类型
- B
- 评分卡系统产品设计问题汇总
- 详解Java多线程编程中线程的启动、中断或终止操作
- java对象初始化过程
- 数据结构与算法系列文章