js导出csv

const exportCsv = (columns, list, fileName = '下载') => {
    // 列标题,逗号隔开,每一个逗号就是隔开一个单元格
    let str = columns.map(v => v.label).join(',') + "\n";
    // 拼接str
    for (let i = 0; i < list.length; i++) {
        let row = list[i]
        columns.forEach(column => {
            // 增加\t为了不让表格显示科学计数法或者其他格式
            str += `${row[column.index] + '\t'},`;
        });
        str += '\n';
    }
    // 通过创建a标签实现 点击下载
    const link = document.createElement("a");
    link.href = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str); // encodeURIComponent解决中文乱码
    link.download = fileName + ".csv"; // 对下载的文件命名
    link.click();
}

// 调用
let columns = [
    { index: 'name', label: '姓名' },
    { index: 'phone', label: '电话' },
    // { index: 'email', label: '邮箱' },
]
let list = [
    {
        name: '路人甲',
        phone: '123456789',
        email: '[email protected]'
    },
    {
        name: '炮灰乙',
        phone: '123456789',
        email: '[email protected]'
    }
];
exportCsv(columns, list);

你可能感兴趣的:(js导出csv)