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]--></head><body><table>{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, filename) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML }  

        document.getElementById("dlink").href = uri + base64(format(template, ctx));
        document.getElementById("dlink").download = filename;
        document.getElementById("dlink").click();
      }
    })()

function excels(tables的ID) {

    if(getExplorer()=='ie'){  

      var curTbl = document.getElementById(table);
      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 filename = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
      } catch (e) {
        window.print("Nested catch caught " + e);
      } finally {
        oWB.SaveAs(filename);
        oWB.Close(savechanges = false);
        oXL.Quit();
        oXL = null; //结束excel进程,退出完成
      timer = window.setInterval("Cleanup();", 1);
      }

    }else {

      tableToExcel(table);
    }

}

var timer;

function getExplorer(){ // 获取浏览器

  var explorer = window.navigator.userAgent;

  if (explorer.indexOf("MSIE") >= 0 || (explorer.indexOf("Windows NT 6.1;") >= 0 && explorer.indexOf("Trident/7.0;") >= 0)) {
  return 'ie';
  } else if (explorer.indexOf("Firefox") >= 0) {
  return 'Firefox';
  } else if (explorer.indexOf("Chrome") >= 0) {
  return 'Chrome';
  } else if (explorer.indexOf("Opera") >= 0) {
  return 'Opera';
  } else if (explorer.indexOf("Safari") >= 0) {
  return 'Safari';
  }

}

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 gtemso 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]--></head><body><table>{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))
    }
  })();

function Cleanup() {
  window.clearInterval(timer);
  CollectGarbage(); //CollectGarbage,是IE的一个特有属性,用于释放内存的
}

利用纯JS导出到EXCEL的更多相关文章

  1. 纯js脚本操作excel

    纯js脚本解析excel,并渲染为htm表格,投放大屏并滚动! 代码:https://github.com/tianbogit/js_excel

  2. js导出成excel

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 6行代码实现纯js导出excel

    // excel导出当前列表 function memberExport() { var oHtml = $('#list').html(); var excelHtml = '<html> ...

  4. [转]纯js导出json到excel(支持chrome)

    转自:http://blog.csdn.net/educast/article/details/52775559 function JSONToExcelConvertor(JSONData, Fil ...

  5. php利用PHPExcel类导出导入Excel用法

    PHPExcel类是php一个excel表格处理插件了,下面我来给大家介绍利用PHPExcel类来导入与导出excel表格的应用方法,有需要了解的朋友不防参考参考(PHPExcel自己百度下载这里不介 ...

  6. 利用纯JS和HTML Canvas生成随机迷宫过程中产生的有趣的事情

    上效果图: #先看生成随机迷宫的代码吧↓ <html> <head> <title>生成随机迷宫v1.0</title> </head> & ...

  7. FileSaver.js导出json文件和文本

    最近刚刚写了个json数据导出生成Excel文件的,顺便总结下利用FileSaver.js导出其他文件的,这里要注意的一个点就是,当导出的是json文件或是txt文件时,导出的内容要是字符串,特别当时 ...

  8. Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"

    Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...

  9. 利用PHPExcel导出excel 以及利用js导出excel

    导出excel的方法output_excel需要依赖PHPExcel 导出csv的方法csv_export不需要 <?php /** * @author ttt */ class ExcelCo ...

  10. 纯JS 将table表格导出到excel

    html <div > <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv ...

随机推荐

  1. 【C++】关于 Visual Studio 的使用技巧(保姆级教程)

    目录 fliter 视图 输出文件位置设置 查看预处理结果 将目标文件转换为可读的汇编 自定义程序入口 调试时查看变量在内存中的具体值 查看代码的反汇编 fliter 视图 visual studio ...

  2. PM2部署DotNet应用程序

    pm2简介 PM2是一个Node.js的进程管理工具,可以帮助开发者简化Node.js应用的部署和运维.它提供了进程守护.负载均衡.日志管理等功能,可以监控应用程序的运行状态,并在发生意外情况时自动重 ...

  3. AE错误代码

    错误代码 错误描述 错误名称 HRESULT:0x80040201 "Failed to load a resource (string, icon, bitmap, etc)." ...

  4. GooseFS透明加速能力,助力加速 CosN 访问 COS 的性能

    01 前言 原生的对象存储接口协议并不兼容HDFS文件语义,因此对象存储COS提供了COSN工具这一的标准的 Hadoop 文件系统实现,可以为 Hadoop.Spark 以及 Tez 等大数据计算框 ...

  5. C# 7.0 新特性:模式匹配 ( pattern matching)

    C# 7.0 新特性:模式匹配 ( pattern matching ) 在 C# 中,is 是一个关键字,可以用来检查某个数据的类型是否为特定类型.这是一个表达式,返回类型为 boolean. 例如 ...

  6. PMML讲解及使用

    1. PMML概述 PMML全称预言模型标记语言(Predictive Model Markup Language),利用XML描述和存储数据挖掘模型,是一个已经被W3C所接受的标准.使用pmml储存 ...

  7. 浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)

    本文由转转QA赵里京分享,原题"浅谈IM与相关测试方法",下文进行了排版和内容优化. 1.引言 目前转转的所有业务都在快速增长,支撑其用户服务的客服系统也同样在快速发展,以承接用户 ...

  8. windows11使用pycharm连接wsl2开发基于poetry的python项目

    windows11使用pycharm连接wsl2开发基于poetry的python项目 背景:公司开发的python项目用到了某个只提供了Linux版本的包,遂研究了一番如何在windows环境下进行 ...

  9. Bogus:.NET的假数据生成利器

    我们在项目开发中,为了保证系统功能完整.准确性,我们都需要模拟真实数据进行测试. 今天推荐一个开源库,方便我们制造假数据测试. 01 项目简介 Bogus 是一个开源的 .NET 库,它提供了一个强大 ...

  10. 2024新版本如何配置CLion与cubeMX开发STM32

    2024新版本如何配置CLion与cubeMX开发STM32 1. 为什么我要在网上有很多教程的情况下再做一个新版 各种大佬们给出的配置教程原本很详细,但是在时间过了这么久之后已经不完全符合现在的环境 ...