Как мне преобразовать таблицу Excel в массив javascript?

Мне нужно ввести большое количество данных в массиве, который будет в этой форме:

[
  [data1,data2,data3,...,data9],
  [data1,data2,data3,...,data9],
  [data1,data2,data3,...,data9],
  ...
]

В действительности, ввод данных напрямую в виде JavaScript - это длительный процесс, который имеет много ошибок. Кроме того, я хотел бы ввести данные в таблицу Excel и сгенерировать массив JavaScript из листа. Как я могу это сделать?

4 ответа

Решение

Поскольку это операция, которую вы выполняете только один или несколько раз, вот решение с нулевой обработкой, использующее веб-сайт Mr. Data Converter, по-видимому, созданный Шаном Картером.

Вот как я преобразовал эту фиктивную электронную таблицу из 679 дублированных строк:

  1. Выделите все данные, используя Ctrl + A
  2. Копировать в буфер обмена с помощью Ctrl + C
  3. Откройте сайт Mr. Data Converter
  4. Нажмите в верхней текстовой области и вставьте данные с помощью Ctrl + V
  5. Выбрать вывод как "JSON - Row Arrays"
  6. Результат в нижней текстовой области будет выглядеть так:

  1. Нажмите в нижней текстовой области, и он будет выбран
  2. Копировать в буфер обмена с помощью Ctrl + C

Теперь вы можете вставить данные куда угодно и добавить вокруг них объявление для массива JavaScript.

Примечание на будущее: если веб-сайт Mr. Data Converter когда-либо исчезнет из Интернета, его рабочую копию можно найти на Wayback Machine.

Я считаю, что вы могли бы использовать Papa Parse, который является инструментом JavaScript для анализа файлов.csv.

Сначала введите все свои данные в Excel и сохраните файл в формате.csv.

Далее используйте NPM для установки Papa Parse:

$ npm install papaparse

Импортируйте ваш.csv в JS:

var file = '/path/to/your.csv';

var content = fs.readFileSync(file, "utf8");

Затем используйте этот код для анализа.csv в массиве:

var Papa = require('papaparse');

Papa.parse(content, {
    header: false,
    delimiter: "\t",
    complete: function(results) {
    rows = results.data;
    }
});

Я тоже какое-то время использовал Mr Data Converter , но в нем отсутствует поддержка кавычек, разрывы строк запятых и т. д., а последнее обновление было 6 лет назад.

Имхо, довольно хорошей альтернативой является Convertcsv.com. Он имеет отличные функции (особенно с учетом разрывов строк, если вы легко берете данные из XLS для копирования и вставки).

Для записи из их политики конфиденциальности:

Мы не собираем данные, вводимые или выводимые через наши службы конвертации.

Если у вас есть , в качестве разделителя в виде простого текста .csv файл вы можете просто сделать это:

var csvarray = [];
var client = new XMLHttpRequest();
client.open('GET', '/mydata.csv');
client.onreadystatechange = function() {
    var rows = client.responseText.split('\n');
    for(var i = 0; i < rows.length; i++){
        csvarray.push(rows[i].split(','));
    }
}
client.send();

csvarray будет содержать один массив на строку csv, содержащий данные, разделенные запятыми.

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