Чтение данных из файла CSV по событию сброса

Я пытаюсь прочитать данные CSV во время загрузки, но не могу получить данные.

Я удаляю данные в теге «div», а не в теге «вход».

 onDrop = (e: React.DragEvent)=>{
        console.info("the value of event is ",e, e.dataTransfer.files);

        let files = e.dataTransfer.files; // FileList object

 // the value of files is 
 //lastModified: 1557969398000
 //lastModifiedDate: Thu May 16 2019 06:46:38 GMT+0530 (India Standard 
 //Time) {}
 //name: "2388278.csv"
 //size: 17934
 //type: "text/csv"
 //webkitRelativePath: ""

        let f = files[0];
        let reader = new FileReader();
        let output = reader.readAsText(f);
        console.info("output", output); // out put value id undefined

}

🤔 А знаете ли вы, что...
JavaScript является одним из трех основных языков веб-разработки, вместе с HTML и CSS.


1
872
1

Ответ:

Решено

Используйте функцию FileReader загружается для

  • получить доступ к содержимому файла через fileReader.result
  • разделить каждую строку на \n
  • разделить содержимое каждой строки на ,

Сделав вышеописанное, вы получите массив, в котором каждый элемент массива соответствует строке в файле CSV.

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

001,admin,[email protected]
002,user,[email protected]

Вы получите следующий вывод

[['001', 'admin', '[email protected]'], ['002', 'user', '[email protected]']]

Пожалуйста, попробуйте следующий пример

const file = e.dataTransfer.files[0];
const fileReader = new FileReader();

fileReader.readAsText(file);

fileReader.onload = function() {
    const dataset = fileReader.result;

    const result = dataset.split('\n').map(data => data.split(','));

    console.info(result);
};