json到csv逗号问题javascript
我想知道如何在javascript中将json转换为csv, 下面的代码可以工作,但在场景示例中,如果headerjson到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
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 + '\"';
}