javascript - 如何跳过第一行并添加标题来下载 csv 文件

标签 javascript

这是我的代码:

<script type="text/javascript">  
    functionExport(json_data, "User_Report", true);

    function functionExport(JSONData, ReportTitle, ShowLabel) {
        var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
        var CSV = '';
        if (ShowLabel) {
            var row = "";
            for (var index in arrData[0]) {
                row += index.toUpperCase() + ',';
            }
            row = row.slice(0, -1);

            CSV += row + '\r\n';
        }
        //1st loop is to extract each row
        for (var i = 0; i < arrData.length; i++) {
            var row = "";
            for (var index in arrData[i]) {
                row += '"' + $('<div>').html(arrData[i][index]).text() + '",';

            }
            row.slice(0, row.length - 1);
            CSV += row + '\r\n';
        }
        if (CSV == '') {
            alert("Invalid data");
            return;
        }
        //Generate a file name
        var fileName = "Manage_";

        fileName += ReportTitle.replace(/ /g, "_");
        var link = document.createElement("a");
        link.href = uri;
        //set the visibility hidden so it will not effect on your web-layout
        link.style = "visibility:hidden";
        link.download = fileName + ".csv";
        //this part will append the anchor tag and remove it after automatic click
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
    }
</script>

最佳答案

我的建议是,不要重新发明轮子。 CSV 有很多问题。只需使用一个已经存在的库,papaparse。

下面是获取 JSON 对象并将其转换为 CSV 的函数: http://papaparse.com/docs#json-to-csv

如果您想跳过第一行,只需将 arrData.slice(1) 传递给它,而不是 arrData

如果您想添加自己的 header ,这就是第三个函数签名的用途...如下所示: Papa.unparse({fields:['a','b','c'],数据:arrData})

关于javascript - 如何跳过第一行并添加标题来下载 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951351/

相关文章:

javascript - 如何使用 html 范围 slider 更改音频对象的音量?

javascript - c3图表数据标签重叠问题

javascript - 是否可以使用多张图片作为 Google Maps v3 MarkerImage?

javascript - 文本输入内的按钮 - HTML

javascript - 随机化 Logo 颜色并相应地更改 CSS 链接颜色

javascript - 水平 CSS 漏斗

javascript - HTML linter 中的 Microsoft VS Code 和 Angular 2 标签

javascript - 深入了解 Node.js 中的回调

javascript - 避免在用户前后使用时重置 javascript 变量

javascript - 如何在不输入完整比较的情况下添加石头剪刀布的无限变化