J'essaie et me tape déjà la tête en essayant de lire le fichier Excel dans Reactjs.
J'ai essayé plusieurs bibliothèques comme Sheetjs , Excel-parser , exceljs et ainsi de suite (comme 8-9).
Je reçois des erreurs étranges et différentes dans chaque bibliothèque.
Par exemple, j'utilise Excel-parser et j'obtiens l'erreur suivante
Module not found: 'child_process'
En effet, il s'agit d'un module de nœud et ne fonctionnera pas dans le navigateur.
Quelqu'un connaît une bibliothèque bonne et facile qui peut fonctionner avec reactjs dans le navigateur ?
J'ai lu avec succès le fichier Excel en utilisant la version npm de Sheetjsxlsx.
Voici le code:
import * as XLSX from 'xlsx';
//f = file
var name = f.name;
const reader = new FileReader();
reader.onload = (evt) => { \\evt = on_file_select event
/* Parse data */
const bstr = evt.target.result;
const wb = XLSX.read(bstr, {type:'binary'});
/* Get first worksheet */
const wsname = wb.SheetNames[0];
const ws = wb.Sheets[wsname];
/* Convert array of arrays */
const data = XLSX.utils.sheet_to_csv(ws, {header:1});
/* Update state */
console.log("Data>>>"+data);
};
reader.readAsBinaryString(f);
Je trouve que xlsx fonctionne plutôt bien. paquet xlsx
Noman ALi! Merci.
J'ai utilisé ce code
const handleUpload = (e) => {
e.preventDefault();
var files = e.target.files, f = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var data = e.target.result;
let readedData = XLSX.read(data, {type: 'binary'});
const wsname = readedData.SheetNames[0];
const ws = readedData.Sheets[wsname];
/* Convert array to json*/
const dataParse = XLSX.utils.sheet_to_json(ws, {header:1});
setFileUploaded(dataParse);
};
reader.readAsBinaryString(f)
}