前端js打印(导出)excel表格的方法实例

本文主要和大家分享前端js打印(导出)excel表格的方法实例,希望能帮助到大家。

产品原型:

前端js打印(导出)excel表格的方法实例

图片.png

功能需求:点击导出考勤表格按钮,会自动下载成Excel格式

立即学习“前端免费学习笔记(深入)”;

前端js打印(导出)excel表格的方法实例

图片.png

前端js打印(导出)excel表格的方法实例

图片.png

jsp页面代码:

登录后复制

js代码

//打印表格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 method5(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",                        "Excel Spreadsheets (*.xls), *.xls");            } 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 = '{table}
', 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)) } })()

登录后复制

完整的可复制黏贴的demo:

                                    

王婷111 一见倾城333
祈澈姑娘222 Python开发者交流平台44
wwwangting888 13661725475
//打印表格 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 method5(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", "Excel Spreadsheets (*.xls), *.xls"); } 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 = '{table}
', 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)) } })()

登录后复制

相关推荐:

前端html表格生成excel表格实例

实例详解javascript将json格式数组下载为excel表格

用javscript导出html中的数据到excel表格中

以上就是前端js打印(导出)excel表格的方法实例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2784724.html

(0)
上一篇 2025年3月8日 17:14:18
下一篇 2025年3月8日 17:14:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • js的Prototype属性用法详解

    每一个构造函数都有一个属性叫做原型(prototype,下面都不再翻译,使用其原文)。这个属性非常有用:为一个特定类声明通用的变量或者函数。 prototype的定义你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它…

    2025年3月8日
    000
  • AngularJS使用webApi导出数据

    本文主要和大家分享angularjs使用webapi导出数据代码实例,希望本文的代码能帮助到大家。  /////导出功能    self.importExcel = function () {        var dataUrl = “h…

    编程技术 2025年3月8日
    200
  • vue.js、element-ui、vuex环境搭建实例分享

    本文主要和大家分享vue.js、element-ui、vuex环境搭建实例,本文主要以图文实例和代码分享,希望能帮助到大家。 一、初始化项目 vue init webpack  登录后复制 二、初始化依赖包 npm install 登录后复…

    2025年3月8日 编程技术
    200
  • 六种JS数组去重的方法分享

    方法一: 双层循环,外层循环元素,内层循环时比较值 如果有相同的值则跳过,不相同则push进数组 本文主要和大家分享六种JS数组去重的方法,希望能帮助到大家。 Array.prototype.distinct =function(){ va…

    编程技术 2025年3月8日
    200
  • JS高级程序之DOM拓展

    11.1选择符api: SelectorsAPI的核心两个方法,:querySelector()和querySlelctorAll(),在兼容的浏览器中,可以通过Domcument及Element类型的实例可以调用他们。 11.1.1 qu…

    编程技术 2025年3月8日
    200
  • js多种字符串转换数字的方式详解

    在js读取文本框或者其他表单数据的时候获得的值是字符串类型的,当我们需要用其他数据类型时就必须要使用数据类型转换了,今天我们就来讲一下js对字符串转换为数字的多种方法! 在js读取文本框或者其他表单数据的时候获得的值是字符串类型的,比如两个…

    编程技术 2025年3月8日
    200
  • js中字符串使用方法分享

    本文主要和大家分享js中字符串使用方法,文中运用了多个例子,希望能帮助到大家。 1.提取字符串substring() substring() 方法用于提取字符串中介于两个指定下标之间的字符。 语法 stringObject.substrin…

    编程技术 2025年3月8日
    200
  • JS获取form中radio和buttons的选中值

    在js中获取到form表单的radiobuttons的选中值其实和普通的radiobutton的方法是一样的。常用的radiobutton会要求设定radiobutton的name属性和type属性,然后根据这两个属性进行查找,如下: 1 …

    编程技术 2025年3月8日
    200
  • Scrapy与scrapy-splash框架快速加载js页面

    一、前言 我们在使用爬虫程序爬取网页时,一般对于静态页面的爬取是比较简单的,之前写过挺多的案例。但是对于使用js动态加载的页面如何爬取呢? 对于动态js页面的爬取有以下几种爬取的方式: 通过selenium+phantomjs实现。 pha…

    2025年3月8日
    200
  • js判断当前打开浏览器的方式

    我们同一个网页,可能会在PC端打开或者不同的移动端打开,那么,我们想要在不同的设备上打开显示不同的效果,就需要知道当前是以什么方式打开的浏览器。Navigator对象提供的属性可以解决这些问题,Navigator对象包含有关浏览器的信息。 …

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论