将页面表格导出为Excel文件

您所在的位置:网站首页 把网页中的表格导入到excel 将页面表格导出为Excel文件

将页面表格导出为Excel文件

#将页面表格导出为Excel文件| 来源: 网络整理| 查看: 265

如果在页面上展示了一个数据表格,而用户想把这个表格导出为Excel文件,那么在要求不高的情况下,可以不通过服务器生成表格,而是直接利用JavaScript的Blob [blɑ:b]和Object URL特性将表格导出。不过,丑话说在前头,这篇随笔中利用了Excel能打开HTML文档的特性,所以导出的表格实际上是一个HTML文档,并且其扩展名只能为.xls,而不能是.xlsx,否则Excel无法打开。(不过确实见过使用JavaScript生成真正Excel文件的方案,这里暂不提及。)

实现代码如下,包含HTML页面和JavaScript脚本:

/* 此样式仅用于浏览器页面效果,Excel不会分离表格边框,不需要此样式 */ table { border-collapse: collapse; } 学生成绩表 编号 学号 姓名 性别 年龄 成绩 语文 数学 英语 1 2016001 张三 男 13 85 94 77 2 2016002 李四 女 12 96 84 89 导出表格 // 使用outerHTML属性获取整个table元素的HTML代码(包括标签),然后包装成一个完整的HTML文档,设置charset为urf-8以防止中文乱码 var html = "" + document.getElementsByTagName("table")[0].outerHTML + ""; // 实例化一个Blob对象,其构造函数的第一个参数是包含文件内容的数组,第二个参数是包含文件类型属性的对象 var blob = new Blob([html], { type: "application/vnd.ms-excel" }); var a = document.getElementsByTagName("a")[0]; // 利用URL.createObjectURL()方法为a元素生成blob URL a.href = URL.createObjectURL(blob); // 设置文件名 a.download = "学生成绩表.xls";

效果如图: 这里写图片描述 打开下载的文件: 这里写图片描述

使用开发者工具检查a元素,就能大致明白blob URL的工作原理:

导出表格

注意: blob对象兼容大部分浏览器,但是在FireFox中存在问题,不能后创建a标签,要提前吧a标签放到body中,类似于事件委托的一种问题。感谢原文作者!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3