HTML 导出 Excel

 

  1. //第五种方法  
  2.         var idTmr;  
  3.         function  getExplorer() {  
  4.             var explorer = window.navigator.userAgent ;  
  5.             //ie  
  6.             if (explorer.indexOf("MSIE") >= 0) {  
  7.                 return 'ie';  
  8.             }  
  9.             //firefox  
  10.             else if (explorer.indexOf("Firefox") >= 0) {  
  11.                 return 'Firefox';  
  12.             }  
  13.             //Chrome  
  14.             else if(explorer.indexOf("Chrome") >= 0){  
  15.                 return 'Chrome';  
  16.             }  
  17.             //Opera  
  18.             else if(explorer.indexOf("Opera") >= 0){  
  19.                 return 'Opera';  
  20.             }  
  21.             //Safari  
  22.             else if(explorer.indexOf("Safari") >= 0){  
  23.                 return 'Safari';  
  24.             }  
  25.         }  
  26.         function method5(tableid) {  
  27.             if(getExplorer()=='ie')  
  28.             {  
  29.                 var curTbl = document.getElementById(tableid);  
  30.                 var oXL = new ActiveXObject("Excel.Application");  
  31.                 var oWB = oXL.Workbooks.Add();  
  32.                 var xlsheet = oWB.Worksheets(1);  
  33.                 var sel = document.body.createTextRange();  
  34.                 sel.moveToElementText(curTbl);  
  35.                 sel.select();  
  36.                 sel.execCommand("Copy");  
  37.                 xlsheet.Paste();  
  38.                 oXL.Visible = true;  
  39.   
  40.                 try {  
  41.                     var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");  
  42.                 } catch (e) {  
  43.                     print("Nested catch caught " + e);  
  44.                 } finally {  
  45.                     oWB.SaveAs(fname);  
  46.                     oWB.Close(savechanges = false);  
  47.                     oXL.Quit();  
  48.                     oXL = null;  
  49.                     idTmr = window.setInterval("Cleanup();", 1);  
  50.                 }  
  51.   
  52.             }  
  53.             else  
  54.             {  
  55.                 tableToExcel(tableid)  
  56.             }  
  57.         }  
  58.         function Cleanup() {  
  59.             window.clearInterval(idTmr);  
  60.             CollectGarbage();  
  61.         }  
  62.         var tableToExcel = (function() {  
  63.             var uri = 'data:application/vnd.ms-excel;base64,',  
  64.                     template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',  
  65.                     base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },  
  66.                     format = function(s, c) {  
  67.                         return s.replace(/{(\w+)}/g,  
  68.                                 function(m, p) { return c[p]; }) }  
  69.             return function(table, name) {  
  70.                 if (!table.nodeType) table = document.getElementById(table)  
  71.                 var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}  
  72.                 window.location.href = uri + base64(format(template, ctx))  
  73.             }  
  74.         })()  

 

posted @   阿日斯兰  阅读(201)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示