json到csv逗号问题javascript

json到csv逗号问题javascript,javascript,arrays,object,Javascript,Arrays,Object,我想知道如何在javascript中将json转换为csv, 下面的代码可以工作,但在场景示例中,如果headerdetails的值用逗号分隔 服务、财务,然后将值转移到下一列 convertToCSV(objArray) { var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; var str = ''; for (var i = 0; i < array.leng

我想知道如何在javascript中将json转换为csv, 下面的代码可以工作,但在场景示例中,如果header
details
的值用逗号分隔
服务、财务
,然后将值转移到下一列

  convertToCSV(objArray) {
    var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
    var str = '';
    for (var i = 0; i < array.length; i++) {
        var line = '';
        for (var index in array[i]) {
            if (line != '') line += ','

            line += array[i][index];
        }
        console.log(str, line);
        str += line + '\r\n';
    }
    return str;
}

  exportCSV =(tabledata) =>{
    const items  = tabledata;
    const fileTitle = "Sample";
    // Convert Object to JSON
    var jsonObject = JSON.stringify(items);
    var csv = this.convertToCSV(jsonObject);
    console.log(csv);
    var exportedFilenmae = fileTitle + '.csv' || 'export.csv';
    var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
    if (navigator.msSaveBlob) { // IE 10+
        navigator.msSaveBlob(blob, Sample Report);
    } else {
        var link = document.createElement("a");
        if (link.download !== undefined) { // feature detection
            // Browsers that support HTML5 download attribute
            var url = URL.createObjectURL(blob);
            link.setAttribute("href", url);
            link.setAttribute("download", "Sample Report");
            link.style.visibility = 'hidden';
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
        }
    }
}

<button onClick="exportCSV(tabledata)">Download as CSV</button>


const tabledata = [
  ["id", "details", "status"],
  [1, "service,finance", "Active"],
  [2, "service", "Inactive"],
  [3, "member,service,finance", "Active"]
]
convertToCSV(objArray){
var array=typeof objArray!=“object”?JSON.parse(objArray):objArray;
var-str='';
对于(var i=0;i{
常量项=表格数据;
const fileTitle=“示例”;
//将对象转换为JSON
var jsonObject=JSON.stringify(items);
var csv=this.convertToCSV(jsonObject);
console.log(csv);
var exportedFilenmae=fileTitle+'.csv'| |'export.csv';
var blob=new blob([csv],{type:'text/csv;charset=utf-8;'});
if(navigator.msSaveBlob){//IE 10+
msSaveBlob(blob,示例报告);
}否则{
var link=document.createElement(“a”);
如果(link.download!==未定义){//功能检测
//支持HTML5下载属性的浏览器
var url=url.createObjectURL(blob);
link.setAttribute(“href”,url);
link.setAttribute(“下载”、“示例报告”);
link.style.visibility='hidden';
document.body.appendChild(链接);
link.click();
document.body.removeChild(link);
}
}
}
以CSV格式下载
常数表数据=[
[“id”、“详细信息”、“状态”],
[1,“服务、金融”、“主动”],
[2,“服务”,“非活动”],
[3,“会员、服务、财务”、“活跃”]
]
预期产出:

必须引用包含特殊字符的CSV记录

除非特殊字符是
,在这种情况下,它需要用
表示

不要尝试编写自己的CSV生成器。格式并不像看上去那么简单。请使用一个强大、维护良好的库,如

const exportCSV=(tabledata)=>{
var csv=pap.unpasse(tabledata);
console.log(csv);
}
常数表数据=[
[“id”、“详细信息”、“状态”],
[1,“服务、金融”、“主动”],
[2,“服务”,“非活动”],
[3,“会员、服务、财务”、“活跃”]
]


作为CSV下载,循环浏览数据并替换

if ((data + '').includes(',')) {
    data = '\"' + data + '\"';
}