【问题标题】:how to organize my csv file into Javascript如何将我的 csv 文件组织成 Javascript
【发布时间】:2018-12-06 10:12:30
【问题描述】:

我有这样的 xlsx 文件:

我正在将我的 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);
   }

请帮忙。

【问题讨论】:

  • 我建议寻找一个 Javascript CSV 解析器。有很多可用的。您可以自己编写代码,但有很多小细节需要注意。

标签: javascript jquery arrays split


【解决方案1】:

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

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(''));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 2019-06-30
    • 2012-11-26
    • 1970-01-01
    • 2011-10-28
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多