如何将我的csv文件组织成Javascript

时间:2018-12-06 10:12:31

标签: javascript jquery arrays split

我有这样的xlsx文件:

enter image description here

我正在将我的xlsx文件导出到csv文件。所以我得到了这个结果:

DemandID;ExceptionalFlag;TAG
47 417;"X78 Sos 
kopk";Enabled
41 224;"NAnCond
Blap
MOP
nbi
baze";Enabled
65 489;;Direct

我想导入我的csv文件,就像这样的输出:

DemandID;ExceptionalFlag;TAG
47 417;"X78 Sos kopk";Enabled
41 224;"NAnCond Blap MOP nbi baze";Enabled
65 489;;Direct

我现在不在要添加此条件的位置,您会发现以下内容我的代码是:

    var content = reader.result;
    var lines = content.split((/\r\n|\n/));
    var headers=lines[0].split(";");

    for(var i=1;i<lines.length;i++){
      var currentline = lines[i].match(/(\s*"[^"]+"\s*|\s*[^;]+|;)(?=;|$)/g);
   }

请帮助。

1 个答案:

答案 0 :(得分:0)

您的问题没有得到很好的定义,我们真的不知道行应该在哪里结束(如果每个值都以';'结尾会更好。)如果我们假设最后一列只能包含一个单词,这将给出您想要的输出:

const input = `DemandID;ExceptionalFlag;TAG
47 417;"X78 Sos
kopk";Enabled
41 224;"NAnCond
Blap
MOP
nbi
baze";Enabled
65 489;;Direct`;

let result = input.replace(/\n/g, " ").split(''); // collapse the string, split into array 
let counter = 0;
let flag = false;

for (let i=0; i < result.length; i++) { // look at every character in the array
  if (result[i] === ';') counter++       // count the number of ';'
  if (counter === 2) {                   // when the counter reaches 2
    flag = true;
    counter = 0;
  }
  if (flag && result[i] === ' ') {        // replace the next space with \n
    result[i] = '\n';
    flag = false;                         // and reset... 
  }
}

console.log(result.join(''));