2021-05-11 13:34:23 +02:00
|
|
|
/** 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
|
|
|
};
|
|
|
|
|
2021-05-11 13:34:23 +02:00
|
|
|
/**
|
|
|
|
* Reads a csv file and converts it to an array.
|
|
|
|
*
|
|
|
|
* @param input - The file to be read.
|
|
|
|
* @returns An array of the read data.
|
|
|
|
*/
|
2021-04-29 19:10:39 +02:00
|
|
|
function readCsv(input: any): Array<any> | void {
|
2021-03-24 14:26:51 +01:00
|
|
|
if (input.files && input.files[0]) {
|
2021-04-29 19:10:39 +02:00
|
|
|
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);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-05-11 13:34:23 +02:00
|
|
|
/**
|
|
|
|
* Parses data to CSV format.
|
|
|
|
*
|
|
|
|
* @param data - The data to be parsed.
|
|
|
|
* @returns An array of the parsed data.
|
|
|
|
*/
|
2021-04-29 19:10:39 +02:00
|
|
|
function parseData(data: any): Array<any> {
|
|
|
|
const csvData: Array<any> = [];
|
|
|
|
const lineBreak: Array<any> = data.split('\n');
|
2021-05-10 18:15:25 +02:00
|
|
|
lineBreak.forEach((res) => {
|
2021-03-24 14:26:51 +01:00
|
|
|
csvData.push(res.split(','));
|
|
|
|
});
|
|
|
|
console.table(csvData);
|
|
|
|
return csvData;
|
|
|
|
}
|
|
|
|
|
2021-05-11 13:34:23 +02:00
|
|
|
/** @exports */
|
2021-05-10 18:15:25 +02:00
|
|
|
export { readCsv };
|