使用 JavaScript 导出 CSV 文件

技术

在现代浏览器中已经逐渐支持 JavaScript 对文件的各种操作,以前必须由后端完成的各种事情也渐渐地可以由前端来完成。传统的 CSV 文件的下载一般都是由后端直接生成 URL,前端访问此 URL来完成下载。现在,这一工作可以完全由前端来负责完成。

数组转化为 CSV

var data = [
    ["张朋", "男", new Date("1994-02-02")],
    ["李艳", "女", new Date("1993-03-03")],
];

function processRow (row) {
            var finalVal = '';
            for (var j = 0; j < row.length; j++) {
                var innerValue = row[j] === null ? '' : row[j].toString();
                if (row[j] instanceof Date) {
                    innerValue = row[j].toLocaleString();
                };
                var result = innerValue.replace(/"/g, '""');
                if (result.search(/("|,|\n)/g) >= 0)
                    result = '"' + result + '"';
                if (j > 0)
                    finalVal += ',';
                finalVal += result;
            }
            return finalVal;
};

var csvString = data.map(function(item){return processRow(item)}).join("\n");

CSV 数据转化为 bolb 文件

//前置的"\uFEFF"为“零宽不换行空格”,可处理中文乱码问题
var blob = new Blob(["\uFEFF" + csvString], { type: 'text/csv;charset=gb2312;' });

获取文件地址并下载

 var a = document.createElement('a');
 a.download = 'name.csv';//这里替换为你需要的文件名
 a.href = URL.createObjectURL(blob);
 a.click();

参考链接:
How to export JavaScript array info to csv (on client side)?
网页前端导出CSV,Excel格式文件

创建于2017年05月15日 19:07
阅读量 2753
留言列表

暂时没有留言

添加留言