使用javascript下载页面中的表格数据
2017-09-25 18:49
330 查看
以前要下载web页面中的数据要依靠sever端,现在使用Blob等较新技术可以直接使用javascript把页面表格中的数据下载下来,本篇主要讲述把表格数据下载为csv文件。
![](https://img-blog.csdn.net/20170925183304162?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWFuZ19jaHVhbmxvbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
例如我们想要把上面表格中的数据下载为csv文件,步骤如下
获取表格中文本内容。拼接成csv格式的字符串。如本例中最终拼接后的字符串应为: Name;Math;Physics;Chemistry; \n Melanie;100;80;90; \n Tomas …… 95.
本机配置的csv分割符为”;”, 如果你的主机csv配置的csv分割符为”,”, 把”;”替换为”,”即可。
使用拼接的字符串生成一个数组,传给Blob构造函数,生成一个blob对象。
使用浏览器支持的方法把文件保存为csv文件, IE10+可以navigator.msSaveBlob, 火狐或Chrome可以使用URL.createObjectUrl和 a 标签(通过设置其download属性)联合使用来保存csv文件
代码如下:
想查看demo, 请点击这里
支持IE10+及较新版本的火狐和Chrome
例如我们想要把上面表格中的数据下载为csv文件,步骤如下
获取表格中文本内容。拼接成csv格式的字符串。如本例中最终拼接后的字符串应为: Name;Math;Physics;Chemistry; \n Melanie;100;80;90; \n Tomas …… 95.
本机配置的csv分割符为”;”, 如果你的主机csv配置的csv分割符为”,”, 把”;”替换为”,”即可。
使用拼接的字符串生成一个数组,传给Blob构造函数,生成一个blob对象。
使用浏览器支持的方法把文件保存为csv文件, IE10+可以navigator.msSaveBlob, 火狐或Chrome可以使用URL.createObjectUrl和 a 标签(通过设置其download属性)联合使用来保存csv文件
代码如下:
var columnDelimiter = ";"; //列分割符 var lineDelimiter = "\n"; //行分割符 function downloadTable(tableId, fileName) { var scoreTable = document.getElementById(tableId); var head = scoreTable.tHead; var ths = head.getElementsByTagName('th'); var trs = scoreTable.tBodies[0].getElementsByTagName('tr'); var result = ''; for(let i=0,l=ths.length; i<l; i++){ result += ths[i].innerHTML + columnDelimiter; } result += lineDelimiter; for(let i=0, l=trs.length; i<l; i++){ let tds = trs[i].getElementsByTagName('td'); for(let j=0, l2=tds.length; j<l2; j++){ result += tds[j].innerHTML + columnDelimiter; } result += lineDelimiter; } var blob = new Blob([result], {type: 'text/csv;charset=utf-8;'}); var downloadLink = document.createElement("a"); if ('download' in downloadLink) { // feature detection, Browsers that support HTML5 download attribute var url = URL.createObjectURL(blob); downloadLink.href = url; downloadLink.download = fileName; downloadLink.hidden = true; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink); }else{ if(navigator.msSaveBlob){ //IE10+ navigator.msSaveBlob(blob, fileName); } } } downloadTable('score', 'score.csv'); //保存csv文件
想查看demo, 请点击这里
支持IE10+及较新版本的火狐和Chrome
相关文章推荐
- ThinkPHP定时ajax获取后台数据,使用javascript动态修改前端页面的表格来显示数据
- javascript调用activeXObject 导出页面表格数据到excel
- ASP.NET基础教程-Web 自定义控件的使用-根据属性值从数据库中提取数据并在页面上自动生成一个表格
- 使用javascript实现json数据以csv格式下载
- 使用javascript实现html页面直接下载网盘文件
- JavaScript在页面间数据传输的使用
- 17个使用AJAX技术的数据表格控件解决方案(Data Grids with AJAX, DHTML and JavaScript)
- 使用jquery插件 jquery.table2excel.js 将页面中的表格下载到本地(excel格式)
- 页面表格数据下载到Excel的超实用方法
- jquery 使用ajax请求数据显示到页面表格中
- 使用javascript解析xxx.xml文档将数据加载到xxx.html文档中的表格元素中
- 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来,并具有动态排序、动态生成查询、自动分页功能
- 教你一天玩转JavaScript(六)——使用JavaScript完成后台数据展示表格的隔行换色
- 使用JavaScript根据从后台获取来的数据打开一个新的页面
- 从零开始使用JavaScript编写数据表格控件(转载)
- [置顶] ajax请求得到后台数据,前台页面,使用table模板然后clone,显示表格,,不用append拼接 “字符串和HTML表格标签”
- 推荐.NET使用Aspose.Words动态生成word文档数据表格(附Aspose.Words for NET 6.5 破解版下载)
- 使用JavaScript把页面上的表格导出为Excel文件
- 使用javascript选中页面表格中的某一行,并且取值
- Javascript & HTML5 使用Ajax自动更新页面数据