cic-staff-client/src/app/_helpers/read-csv.ts

43 lines
1.0 KiB
TypeScript
Raw Normal View History

/** An object defining the properties of the data read. */
2021-05-10 18:15:25 +02:00
const objCsv: { size: number; dataFile: any } = {
2021-03-24 14:26:51 +01:00
size: 0,
2021-05-10 18:15:25 +02:00
dataFile: [],
2021-03-24 14:26:51 +01:00
};
/**
* Parses data to CSV format.
*
* @param data - The data to be parsed.
* @returns An array of the parsed data.
*/
function parseData(data: any): Array<any> {
const csvData: Array<any> = [];
const lineBreak: Array<any> = data.split('\n');
lineBreak.forEach((res) => {
csvData.push(res.split(','));
});
console.table(csvData);
return csvData;
}
/**
* Reads a csv file and converts it to an array.
*
* @param input - The file to be read.
* @returns An array of the read data.
*/
function readCsv(input: any): Array<any> | void {
2021-03-24 14:26:51 +01:00
if (input.files && input.files[0]) {
const reader: FileReader = new FileReader();
2021-03-24 14:26:51 +01:00
reader.readAsBinaryString(input.files[0]);
2021-05-10 18:15:25 +02:00
reader.onload = (event) => {
2021-03-24 14:26:51 +01:00
objCsv.size = event.total;
objCsv.dataFile = event.target.result;
return parseData(objCsv.dataFile);
};
}
}
/** @exports */
2021-05-10 18:15:25 +02:00
export { readCsv };