Как организовать мой CSV-файл в Javascript

У меня есть такой файл xlsx:

Как организовать мой CSV-файл в Javascript

Я экспортировал свой файл 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. Их очень много. Вы можете написать код самостоятельно, но вам нужно знать множество мелких деталей.

Rory McCrossan 06.12.2018 11:16
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
75
1

Ответы 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.info(result.join(''));

Другие вопросы по теме