Как мне преобразовать таблицу Excel в массив javascript?
Мне нужно ввести большое количество данных в массиве, который будет в этой форме:
[
[data1,data2,data3,...,data9],
[data1,data2,data3,...,data9],
[data1,data2,data3,...,data9],
...
]
В действительности, ввод данных напрямую в виде JavaScript - это длительный процесс, который имеет много ошибок. Кроме того, я хотел бы ввести данные в таблицу Excel и сгенерировать массив JavaScript из листа. Как я могу это сделать?
4 ответа
Поскольку это операция, которую вы выполняете только один или несколько раз, вот решение с нулевой обработкой, использующее веб-сайт Mr. Data Converter, по-видимому, созданный Шаном Картером.
Вот как я преобразовал эту фиктивную электронную таблицу из 679 дублированных строк:
- Выделите все данные, используя Ctrl + A
- Копировать в буфер обмена с помощью Ctrl + C
- Откройте сайт Mr. Data Converter
- Нажмите в верхней текстовой области и вставьте данные с помощью Ctrl + V
- Выбрать вывод как "JSON - Row Arrays"
- Результат в нижней текстовой области будет выглядеть так:
- Нажмите в нижней текстовой области, и он будет выбран
- Копировать в буфер обмена с помощью 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, содержащий данные, разделенные запятыми.