Merci pour la réponse ci-dessus, je pense que le champ d'application (des réponses) est complété mais je voudrais ajouter une "façon react" pour quiconque utilise react.
Créez un fichier appelé importData.js :
import React, {Component} from 'react';
import XLSX from 'xlsx';
export default class ImportData extends Component{
constructor(props){
super(props);
this.state={
excelData:{}
}
}
excelToJson(reader){
var fileData = reader.result;
var wb = XLSX.read(fileData, {type : 'binary'});
var data = {};
wb.SheetNames.forEach(function(sheetName){
var rowObj =XLSX.utils.sheet_to_row_object_array(wb.Sheets[sheetName]);
var rowString = JSON.stringify(rowObj);
data[sheetName] = rowString;
});
this.setState({excelData: data});
}
loadFileXLSX(event){
var input = event.target;
var reader = new FileReader();
reader.onload = this.excelToJson.bind(this,reader);
reader.readAsBinaryString(input.files[0]);
}
render(){
return (
<input type="file" onChange={this.loadFileXLSX.bind(this)}/>
);
}
}
Ensuite, vous pouvez utiliser le composant dans la méthode de rendu comme :
import ImportData from './importData.js';
import React, {Component} from 'react';
class ParentComponent extends Component{
render(){
return (<ImportData/>);
}
}
<ImportData/>
pour mettre les données dans leur propre état, vous pouvez accéder aux données Excel dans le "composant parent" en suivant la procédure suivante este :
1 votes
Duplicata possible de Comment lire le contenu d'un fichier Excel du côté client ?
1 votes
@JoachimPileborg : cela ne répond pas à la question. J'ai besoin de lire un fichier Excel ligne par ligne. Bien que je puisse le lire en utilisant FileReader(HTML5), je ne peux toujours pas parcourir les lignes.