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

how to skip first row and add heading to download csv file

本文关键字:标题 添加 下载 文件 csv 一行 何跳过      更新时间:2023-09-26

这是我的代码:

<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-到csv

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

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

您是否尝试过在第一个循环中将i初始化为1?此外,您的jQuery选择器应该是$('div')

for (var i = 1; 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';
    }