You can use SheetJs/xlsx package from npm to get the data from excel as a json object in Angular / Ionic.
Just follow these steps:
1) npm install --save xlsx
2) Now in your component file import xlsx
import * as XLSX from 'xlsx';
3) Now attach this function in the change event of input tag of type file
onFileChange(event: any) {
/* wire up file reader */
const target: DataTransfer = <DataTransfer>(event.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) => {
/* create workbook */
const binarystr: string = e.target.result;
const wb: XLSX.WorkBook = XLSX.read(binarystr, { type: 'binary' });
/* selected the first sheet */
const wsname: string = wb.SheetNames[0];
const ws: XLSX.WorkSheet = wb.Sheets[wsname];
/* save data */
const data = XLSX.utils.sheet_to_json(ws); // to get 2d array pass 2nd parameter as object {header: 1}
console.log(data); // Data will be logged in array format containing objects
};
}
You can also refer to these utils method present in xlsx to perform different operation according to your need.
https://github.com/SheetJS/sheetjs#utility-functions
And also during read operation you can pass these parsing options inside object
https://github.com/SheetJS/sheetjs#parsing-options
For any other information refer to the doc
https://github.com/SheetJS/sheetjs
Hope this will help you or somebody else.