Hi Team,
I am totally new to angular. I have angular UI where we upload a .CSV file with 6 columns and their respective data, so before I invoke .net API, I need to change. If the 1st column has data with 9 digits, then we need to change it to 10 digits just by prefixing ‘0’; for example, If the Excel 1st (AccountNumber)column data is ‘217614234’, this number has to be changed to ‘0217614234’, after the changed entire file content I need pass to API.
Here is my working Code for uploaded data that is being passed to API. Now, I need to add a condition to change the number to 10 digits. If I found a 9-digit number, this is applicable only to the 1st (AccountNumber) column in the .csv file that was uploaded.
Here is a sample exelsheet - https://i.stack.imgur.com/mynhP.png
<input #fileUpload type="file" class="file-upload" name="fileUpload" id="fileUpload" accept=".xlsx,.xls,.csv" required (change)="onFileChange($event)"> <button (click)="UploadFile(form.value)" type="button" mat-raised-button color="primary" [disabled]="!fileSelected">Upload</button>
onFileChange(event: any): void { this.file = event.target.files[0]; if (this.file) { console.log("this.file.type: " + this.file.type); const fileName = this.file.name; this.fileSelected = true; this.invalidFileType = false; this.invalidFileSize = false; this.invalidFileRecords = false; let file: File = this.file; var value; const fileReader = new FileReader(); fileReader.onload = (e: any) => { value = e.target.result; this.data = value; var rows = e.target.result.split("\n"); if (rows.length > 6003) { LoggerService.error(`upload records less than 6K.`, true, true); } }; fileReader.readAsBinaryString(this.file); } } UploadFile(filevalue) { const reqbody = { filename: this.file?.name, destinationPath: '', lines: this.data.replace(/[^a-zA-Z0-9,\n\r.'" ]/g, "").split('\r\n') }; var route = "CallNETAPI"; this.dataService.post(reqbody, route).subscribe( (data: any[]) => { console.log("Response data: " + data); LoggerService.success(`File successfully uploaded to server`, true, false); this.responseData = data; }, (error: Response) => { this.displayError = true; this.errorText = `Error from CallNETAPI API service ${error.status}`; } ); }