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

1426
Wais Kamal

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

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

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

1

3 ответа на вопрос

2
harrymc

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

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

spreadsheet

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

enter image description here

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

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

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

1
Cancun101

Я считаю, что вы можете использовать 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; } }); 
0
confetti

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

Похожие вопросы