как организовать мой CSV-файл в Javascript - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть файл 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 голосов
/ 06 декабря 2018

Ваша проблема не четко определена, мы не знаем, где должна заканчиваться строка (было бы лучше, если бы каждое значение заканчивалось на ';').Если предположить, что последний столбец может содержать только одно слово, это даст желаемый результат:

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