Estoy usando xlsx excel reader y tengo que repetir la misma operación en 3 páginas; Por lo tanto, estoy tratando de crear una función de lectura de Excel común, pero no puedo sincronizarla.
¿Puede alguien por favor guiarme porque he leído muchos artículos?
public importExcelData(evt: any) { let data: any[] = []; const target: DataTransfer = <DataTransfer>(evt.target); if (target.files.length !== 1) throw new Error('Cannot use multiple files'); const reader: FileReader = new FileReader(); reader.readAsBinaryString(target.files[0]); reader.onload = (e: any) => { /* read workbook */ const bstr: string = e.target.result; const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' }); /* grab first sheet */ const wsname: string = wb.SheetNames[0]; const ws: XLSX.WorkSheet = wb.Sheets[wsname]; /* fill data */ data = (XLSX.utils.sheet_to_json(ws, { header: 1 })); } return new Promise(resolve => { resolve(data) }); }Aquí está la función que llamará a la función anterior
onFileChange(evt: any) { this.importExcelData(evt).then(data => { console.log(data); }); }