您的位置:首页 > Web前端

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;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: