Привет всем! У меня возникла проблема с отображением данных из CSV-файла в HTML-таблице. Я опубликовал таблицу Google Sheets в формате CSV и хочу, чтобы значения из этого файла автоматически заполняли поля ввода в моей HTML-таблице.
Я уже создал структуру таблицы на странице, но не могу разобраться, как правильно загрузить данные из CSV и вставить их в нужные input-элементы. Может, кто-нибудь сталкивался с подобной задачей? Буду благодарен за любые советы или примеры кода, которые помогут решить эту проблему.
Заранее спасибо за помощь!
пока что файл CSV и веб-страница работают отдельно, но их можно связать с помощью JavaScript. вот что я бы сделал:
- получаем данные из CSV через fetch()
- парсим их в массив с помощью split()
- проходимся циклом по массиву и заполняем input-ы
примерно так:
fetch(‘твой_файл.csv’)
.then(ответ => ответ.text())
.then(данные => {
let строки = данные.split(‘\n’);
строки.forEach((строка, индекс) => {
let ячейки = строка.split(‘,’);
document.querySelector(#строка${индекс+1}
).value = ячейки[0];
});
});
главное не забыть дать id каждому input-у в HTML. надеюсь, помог разобраться!
Есть еще один способ - использовать FileReader API. Он позволяет читать локальные файлы прямо в браузере. Вот примерный код:
const input = document.createElement(‘input’);
input.type = ‘file’;
input.accept = ‘.csv’;
input.onchange = function() {
const file = this.files[0];
const reader = new FileReader();
reader.onload = function(e) {
const text = e.target.result;
// Здесь парсим CSV и заполняем таблицу
};
reader.readAsText(file);
};
input.click();
Этот подход хорош, если нужно дать пользователю возможность загружать свои CSV-файлы. Просто добавь кнопку для запуска этого кода.
Для этого можно использовать библиотеку Papa Parse. Она отлично справляется с парсингом CSV файлов. Сначала загрузите файл с помощью fetch, затем распарсите его через Papa Parse и заполните поля ввода полученными данными. Код будет примерно такой:
fetch(‘ваш_csv_файл.csv’)
.then(response => response.text())
.then(data => {
Papa.parse(data, {
complete: function(results) {
// Здесь заполняем таблицу
}
});
});
Если нужна помощь с конкретной реализацией, могу подробнее объяснить.