From a3ae0dba020119d3246026e826648c1cfc99fb19 Mon Sep 17 00:00:00 2001 From: sepehr Date: Mon, 29 Jul 2024 17:40:49 +0330 Subject: [PATCH] Fix csv export showing multiline outputs --- src/app/views/snippets/snippets.component.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/app/views/snippets/snippets.component.ts b/src/app/views/snippets/snippets.component.ts index 37af60e..fe2458d 100644 --- a/src/app/views/snippets/snippets.component.ts +++ b/src/app/views/snippets/snippets.component.ts @@ -341,9 +341,18 @@ export class SnippetsComponent implements OnInit, OnDestroy { }); } + sanitizeString(desc:string) { + var itemDesc:string=''; + if (desc) { + itemDesc = desc.toString().replace(/"/g, '\"'); + itemDesc = itemDesc.replace(/'/g, '\''); + } else { + itemDesc = ''; + } + return itemDesc; + } exportToCsv(jsonResponse:any) { - console.dir(jsonResponse); const data = jsonResponse; const columns = this.getColumns(data); const csvData = this.convertToCsv(data, columns); @@ -363,12 +372,13 @@ export class SnippetsComponent implements OnInit, OnDestroy { } convertToCsv(data: any[], columns: string[]): string { + var _self=this; let csv = ''; csv += columns.join(',') + '\n'; data.forEach(row => { const values : any = []; columns.forEach((col:any) => { - values.push(row[col]); + values.push('"'+_self.sanitizeString(row[col])+'"'); }); csv += values.join(',') + '\n'; });