JS前端实现表格下载的方法
2016-08-04 14:49
309 查看
JS实现前端下载的方法很简单,JS本身支持对浏览器对象模型的各种方法,下载过程分为两步:1.处理数据,将下载数据转成string的形式;2.将要下载的数据传输给JS浏览器window的当前页面的url,并设置好文件格式和编码格式即可。
$("#download").on("click", function() {
var csv = table2csv(oTable);
window.location.href = 'data:text/csv;charset=UTF-8,\ufeff'
+ encodeURIComponent(csv);
});
// 此处是对DataTable的oTable进行处理,从oTable中读取th、tr、td的数据,整理成str格式
function table2csv(dTable) {
var csv = [];
var tmpRow = [];
var header = dTable.table().header();
$(header).find('th').each(function() {
tmpRow[tmpRow.length] = formatData($(this).html());
});
csv[csv.length] = row2csv(tmpRow);
var rows = dTable.rows().nodes();
for (var i = 0; i < rows.length; i++) {
tmpRow = [];
$(rows[i]).find('td').each(function() {
tmpRow[tmpRow.length] = formatData($(this).html());
});
csv[csv.length] = row2csv(tmpRow);
}
return csv.join('\n');
}
/*
* 用途:输入tmpRow数组,输出符合csv格式的字符串
*/
function row2csv(tmpRow) {
var separator = ",";
var tmp = tmpRow.join(''); // to remove any blank rows
if (isEmpty(tmp))
return "";
else if (tmpRow.length > 0 && tmp != "") {
var mystr = tmpRow.join(separator);
return mystr;
}
}
$("#download").on("click", function() {
var csv = table2csv(oTable);
window.location.href = 'data:text/csv;charset=UTF-8,\ufeff'
+ encodeURIComponent(csv);
});
// 此处是对DataTable的oTable进行处理,从oTable中读取th、tr、td的数据,整理成str格式
function table2csv(dTable) {
var csv = [];
var tmpRow = [];
var header = dTable.table().header();
$(header).find('th').each(function() {
tmpRow[tmpRow.length] = formatData($(this).html());
});
csv[csv.length] = row2csv(tmpRow);
var rows = dTable.rows().nodes();
for (var i = 0; i < rows.length; i++) {
tmpRow = [];
$(rows[i]).find('td').each(function() {
tmpRow[tmpRow.length] = formatData($(this).html());
});
csv[csv.length] = row2csv(tmpRow);
}
return csv.join('\n');
}
/*
* 用途:输入tmpRow数组,输出符合csv格式的字符串
*/
function row2csv(tmpRow) {
var separator = ",";
var tmp = tmpRow.join(''); // to remove any blank rows
if (isEmpty(tmp))
return "";
else if (tmpRow.length > 0 && tmp != "") {
var mystr = tmpRow.join(separator);
return mystr;
}
}
相关文章推荐
- Vue.js实现表格动态增加删除的方法(附源码下载)
- html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式
- js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法
- JS实现网页表格自动变大缩小的方法
- [前端] JS实现文件下载
- JS禁用页面上所有控件的实现方法(附demo源码下载)
- js自定义方法通过隐藏iframe实现文件下载
- JS+CSS实现表格高亮的方法
- JS实现表格数据各种搜索功能的方法
- JS实现两表格里数据来回转移的方法
- JS实现控制表格只显示行边框或者只显示列边框的方法
- JS实现从表格中动态删除指定行的方法
- JS实现控制表格单元格垂直对齐的方法
- JS实现两表格里数据来回转移的方法
- 通过隐藏iframe实现文件下载的js方法
- JS控制表格实现一条光线流动分割行的方法
- JS实现控制表格行内容垂直对齐的方法
- JS实现控制表格行文本对齐的方法
- A/B 测试的基本概念举例理解以及具体实现方法【传统A/B测试基于后端的 A/B 测试(Back-end AB test),现在基本上基于前端js在客户端进行分流,有更多优点,请看里面】
- JS+CSS实现表格高亮的方法