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

Javascript 如何跳过第一行并添加标题以下载csv文件,javascript,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;

这是我的代码:

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

functionExport(json_数据,“用户_报告”,true);
功能导出(JSONData、ReportTitle、ShowLabel){
var arrData=typeof JSONData!=“object”?JSON.parse(JSONData):JSONData;
var CSV=“”;
如果(显示标签){
var行=”;
对于(arrData[0]中的var索引){
行+=index.toUpperCase()+',';
}
row=row.slice(0,-1);
CSV+=行+'\r\n';
}
//第一个循环是提取每一行
对于(变量i=0;i
您是否尝试将第一个循环中的i初始化为1? 另外,jQuery选择器应该是$('div')

for(变量i=1;i
您是否尝试将第一个循环中的i初始化为1? 另外,jQuery选择器应该是$('div')

for(变量i=1;i
我的建议是,不要重新发明轮子。CSV有很多gotcha。只要使用一个已经存在的库,就可以了

下面是获取JSON对象并将其转换为CSV的函数:

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


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

我的建议是,不要重新发明轮子。CSV有很多gotcha。只要使用一个已经存在的库,就可以了

下面是获取JSON对象并将其转换为CSV的函数:

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


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

我不明白你说的话。。。我想在下载csv文件的第一行添加标题(管理用户),然后我想在下一行显示数据您知道如何加载外部库吗?如果加载它,此语句将生成一个csv,跳过第一行,并带有自定义标题:
csv=Papa.unpasse({fields:['a'、'b'、'c'],data:arrData.slice(1)})
甚至。。。csv=“Some string\n”+Papa.unpasse(arrData.slice(1))位于设置arrData的字符串之后。虽然看起来你并没有在alli的代码末尾使用csv字符串,但我不明白你的意思。。。我想在下载csv文件的第一行添加标题(管理用户),然后我想在下一行显示数据您知道如何加载外部库吗?如果加载它,此语句将生成一个csv,跳过第一行,并带有自定义标题:
csv=Papa.unpasse({fields:['a'、'b'、'c'],data:arrData.slice(1)})
甚至。。。csv=“Some string\n”+Papa.unpasse(arrData.slice(1))位于设置arrData的字符串之后。虽然看起来您根本没有在代码的末尾使用csv字符串……但这是带有更改的代码:i=1和$('div')…这是带有更改的代码:i=1和$('div')如何跳过第一行并添加(pass)标题下载csv文件如何跳过第一行并添加(pass)标题下载csv文件
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';
    }