how to import CSV file in angular 4 and stored data in Database?
i want to import CSV in angular 4, and store data in my database.
<input type="file" name="importCSV">
<button type="submit" class="btn btn-primary">Submit</button>
while i click on the Submit button i want to store data in my Table.
node.js angular angular2-forms
add a comment |
i want to import CSV in angular 4, and store data in my database.
<input type="file" name="importCSV">
<button type="submit" class="btn btn-primary">Submit</button>
while i click on the Submit button i want to store data in my Table.
node.js angular angular2-forms
Have a look at this answer
– Aravind
Dec 6 '17 at 12:00
i didn't get data of CSV file? @Szarik
– Chaudhary
Dec 6 '17 at 12:49
@Chaudhary had you get the solution of your answer.
– Vishwa Pratap
Nov 12 '18 at 16:22
@VishwaPratap i post my answer, you can change the function as per your requirement.
– Chaudhary
Nov 13 '18 at 6:28
@Chaudhary thanks for your response
– Vishwa Pratap
Nov 13 '18 at 10:30
add a comment |
i want to import CSV in angular 4, and store data in my database.
<input type="file" name="importCSV">
<button type="submit" class="btn btn-primary">Submit</button>
while i click on the Submit button i want to store data in my Table.
node.js angular angular2-forms
i want to import CSV in angular 4, and store data in my database.
<input type="file" name="importCSV">
<button type="submit" class="btn btn-primary">Submit</button>
while i click on the Submit button i want to store data in my Table.
node.js angular angular2-forms
node.js angular angular2-forms
asked Dec 6 '17 at 11:58
Chaudhary
829628
829628
Have a look at this answer
– Aravind
Dec 6 '17 at 12:00
i didn't get data of CSV file? @Szarik
– Chaudhary
Dec 6 '17 at 12:49
@Chaudhary had you get the solution of your answer.
– Vishwa Pratap
Nov 12 '18 at 16:22
@VishwaPratap i post my answer, you can change the function as per your requirement.
– Chaudhary
Nov 13 '18 at 6:28
@Chaudhary thanks for your response
– Vishwa Pratap
Nov 13 '18 at 10:30
add a comment |
Have a look at this answer
– Aravind
Dec 6 '17 at 12:00
i didn't get data of CSV file? @Szarik
– Chaudhary
Dec 6 '17 at 12:49
@Chaudhary had you get the solution of your answer.
– Vishwa Pratap
Nov 12 '18 at 16:22
@VishwaPratap i post my answer, you can change the function as per your requirement.
– Chaudhary
Nov 13 '18 at 6:28
@Chaudhary thanks for your response
– Vishwa Pratap
Nov 13 '18 at 10:30
Have a look at this answer
– Aravind
Dec 6 '17 at 12:00
Have a look at this answer
– Aravind
Dec 6 '17 at 12:00
i didn't get data of CSV file? @Szarik
– Chaudhary
Dec 6 '17 at 12:49
i didn't get data of CSV file? @Szarik
– Chaudhary
Dec 6 '17 at 12:49
@Chaudhary had you get the solution of your answer.
– Vishwa Pratap
Nov 12 '18 at 16:22
@Chaudhary had you get the solution of your answer.
– Vishwa Pratap
Nov 12 '18 at 16:22
@VishwaPratap i post my answer, you can change the function as per your requirement.
– Chaudhary
Nov 13 '18 at 6:28
@VishwaPratap i post my answer, you can change the function as per your requirement.
– Chaudhary
Nov 13 '18 at 6:28
@Chaudhary thanks for your response
– Vishwa Pratap
Nov 13 '18 at 10:30
@Chaudhary thanks for your response
– Vishwa Pratap
Nov 13 '18 at 10:30
add a comment |
2 Answers
2
active
oldest
votes
here is the html code.
<input type="file" #fileImportInput name="File Upload" (change)="csvChanged($event)" id="txtFileUpload">
below is my component code
const CSVConstants = {
tokenDelimeter: ",",
isHeaderPresentFlag: true,
validateHeaderAndRecordLengthFlag: true,
valildateFileExtenstionFlag: true,
}
public csvChanged(event) {
var files = event.target.files;
if (CSVConstants.validateHeaderAndRecordLengthFlag) {
if (!this.fileUtil.isCSVFile(files[0])) {
this.utilService.showToastMsg("error", "Please import valid .csv file");
this.fileReset();
return;
}
}
var input = event.target;
var reader = new FileReader();
reader.readAsText(input.files[0]);
reader.onload = (data) => {
let csvData: any = reader.result;
let csvRecordsArray = csvData.split(/rn|n/);
var headerLength = -1;
if (CSVConstants.isHeaderPresentFlag) {
let headersRow = this.fileUtil.getHeaderArray(csvRecordsArray, CSVConstants.tokenDelimeter);
headerLength = headersRow.length;
}
this.csvRecords = this.fileUtil.getDataRecordsArrayFromCSVFile(csvRecordsArray,
headerLength, CSVConstants.validateHeaderAndRecordLengthFlag, CSVConstants.tokenDelimeter);
if (this.csvRecords == null) {
//If control reached here it means csv file contains error, reset file.
this.fileReset();
}
/* Remove the file so that user can upload same one after making changes, otherwise change event
will not be called */
this.clearFile();
/* Remove the first header row */
this.csvRecords.splice(0, 1);
this.csvRecords.map((record: any) => {
this.external_contacts_arr.push({
email: record[0],
first_name: record[1],
last_name: record[2],
designation: record[3],
})
});
this.removeBlankRecords();
//document.getElementById(`${this.uniquePrefix}-other-tab`).click();
}
reader.onerror = () => {
this.utilService.showToastMsg("error", 'Unable to read ' + input.files[0]);
};
}
add a comment |
You can use the below custom function to do the needful :
private extractData(data) { // Input csv data to the function
let csvData = data;
let allTextLines = csvData.split(/rn|n/);
let headers = allTextLines[0].split(',');
let lines = ;
for ( let i = 0; i < allTextLines.length; i++) {
// split content based on comma
let data = allTextLines[i].split(',');
if (data.length == headers.length) {
let tarr = ;
for ( let j = 0; j < headers.length; j++) {
tarr.push(data[j]);
}
lines.push(tarr);
}
}
console.log(lines); //The data in the form of 2 dimensional array.
}
You can read the file inside the file listener function like this:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var file = files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event){
var csv = event.target.result; // Content of CSV file
this.extractData(csv); //Here you can call the above function.
}
}
Inside html use below code:
<input type="file" (change)="handleFileSelect($event)"/>
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f47673788%2fhow-to-import-csv-file-in-angular-4-and-stored-data-in-database%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
here is the html code.
<input type="file" #fileImportInput name="File Upload" (change)="csvChanged($event)" id="txtFileUpload">
below is my component code
const CSVConstants = {
tokenDelimeter: ",",
isHeaderPresentFlag: true,
validateHeaderAndRecordLengthFlag: true,
valildateFileExtenstionFlag: true,
}
public csvChanged(event) {
var files = event.target.files;
if (CSVConstants.validateHeaderAndRecordLengthFlag) {
if (!this.fileUtil.isCSVFile(files[0])) {
this.utilService.showToastMsg("error", "Please import valid .csv file");
this.fileReset();
return;
}
}
var input = event.target;
var reader = new FileReader();
reader.readAsText(input.files[0]);
reader.onload = (data) => {
let csvData: any = reader.result;
let csvRecordsArray = csvData.split(/rn|n/);
var headerLength = -1;
if (CSVConstants.isHeaderPresentFlag) {
let headersRow = this.fileUtil.getHeaderArray(csvRecordsArray, CSVConstants.tokenDelimeter);
headerLength = headersRow.length;
}
this.csvRecords = this.fileUtil.getDataRecordsArrayFromCSVFile(csvRecordsArray,
headerLength, CSVConstants.validateHeaderAndRecordLengthFlag, CSVConstants.tokenDelimeter);
if (this.csvRecords == null) {
//If control reached here it means csv file contains error, reset file.
this.fileReset();
}
/* Remove the file so that user can upload same one after making changes, otherwise change event
will not be called */
this.clearFile();
/* Remove the first header row */
this.csvRecords.splice(0, 1);
this.csvRecords.map((record: any) => {
this.external_contacts_arr.push({
email: record[0],
first_name: record[1],
last_name: record[2],
designation: record[3],
})
});
this.removeBlankRecords();
//document.getElementById(`${this.uniquePrefix}-other-tab`).click();
}
reader.onerror = () => {
this.utilService.showToastMsg("error", 'Unable to read ' + input.files[0]);
};
}
add a comment |
here is the html code.
<input type="file" #fileImportInput name="File Upload" (change)="csvChanged($event)" id="txtFileUpload">
below is my component code
const CSVConstants = {
tokenDelimeter: ",",
isHeaderPresentFlag: true,
validateHeaderAndRecordLengthFlag: true,
valildateFileExtenstionFlag: true,
}
public csvChanged(event) {
var files = event.target.files;
if (CSVConstants.validateHeaderAndRecordLengthFlag) {
if (!this.fileUtil.isCSVFile(files[0])) {
this.utilService.showToastMsg("error", "Please import valid .csv file");
this.fileReset();
return;
}
}
var input = event.target;
var reader = new FileReader();
reader.readAsText(input.files[0]);
reader.onload = (data) => {
let csvData: any = reader.result;
let csvRecordsArray = csvData.split(/rn|n/);
var headerLength = -1;
if (CSVConstants.isHeaderPresentFlag) {
let headersRow = this.fileUtil.getHeaderArray(csvRecordsArray, CSVConstants.tokenDelimeter);
headerLength = headersRow.length;
}
this.csvRecords = this.fileUtil.getDataRecordsArrayFromCSVFile(csvRecordsArray,
headerLength, CSVConstants.validateHeaderAndRecordLengthFlag, CSVConstants.tokenDelimeter);
if (this.csvRecords == null) {
//If control reached here it means csv file contains error, reset file.
this.fileReset();
}
/* Remove the file so that user can upload same one after making changes, otherwise change event
will not be called */
this.clearFile();
/* Remove the first header row */
this.csvRecords.splice(0, 1);
this.csvRecords.map((record: any) => {
this.external_contacts_arr.push({
email: record[0],
first_name: record[1],
last_name: record[2],
designation: record[3],
})
});
this.removeBlankRecords();
//document.getElementById(`${this.uniquePrefix}-other-tab`).click();
}
reader.onerror = () => {
this.utilService.showToastMsg("error", 'Unable to read ' + input.files[0]);
};
}
add a comment |
here is the html code.
<input type="file" #fileImportInput name="File Upload" (change)="csvChanged($event)" id="txtFileUpload">
below is my component code
const CSVConstants = {
tokenDelimeter: ",",
isHeaderPresentFlag: true,
validateHeaderAndRecordLengthFlag: true,
valildateFileExtenstionFlag: true,
}
public csvChanged(event) {
var files = event.target.files;
if (CSVConstants.validateHeaderAndRecordLengthFlag) {
if (!this.fileUtil.isCSVFile(files[0])) {
this.utilService.showToastMsg("error", "Please import valid .csv file");
this.fileReset();
return;
}
}
var input = event.target;
var reader = new FileReader();
reader.readAsText(input.files[0]);
reader.onload = (data) => {
let csvData: any = reader.result;
let csvRecordsArray = csvData.split(/rn|n/);
var headerLength = -1;
if (CSVConstants.isHeaderPresentFlag) {
let headersRow = this.fileUtil.getHeaderArray(csvRecordsArray, CSVConstants.tokenDelimeter);
headerLength = headersRow.length;
}
this.csvRecords = this.fileUtil.getDataRecordsArrayFromCSVFile(csvRecordsArray,
headerLength, CSVConstants.validateHeaderAndRecordLengthFlag, CSVConstants.tokenDelimeter);
if (this.csvRecords == null) {
//If control reached here it means csv file contains error, reset file.
this.fileReset();
}
/* Remove the file so that user can upload same one after making changes, otherwise change event
will not be called */
this.clearFile();
/* Remove the first header row */
this.csvRecords.splice(0, 1);
this.csvRecords.map((record: any) => {
this.external_contacts_arr.push({
email: record[0],
first_name: record[1],
last_name: record[2],
designation: record[3],
})
});
this.removeBlankRecords();
//document.getElementById(`${this.uniquePrefix}-other-tab`).click();
}
reader.onerror = () => {
this.utilService.showToastMsg("error", 'Unable to read ' + input.files[0]);
};
}
here is the html code.
<input type="file" #fileImportInput name="File Upload" (change)="csvChanged($event)" id="txtFileUpload">
below is my component code
const CSVConstants = {
tokenDelimeter: ",",
isHeaderPresentFlag: true,
validateHeaderAndRecordLengthFlag: true,
valildateFileExtenstionFlag: true,
}
public csvChanged(event) {
var files = event.target.files;
if (CSVConstants.validateHeaderAndRecordLengthFlag) {
if (!this.fileUtil.isCSVFile(files[0])) {
this.utilService.showToastMsg("error", "Please import valid .csv file");
this.fileReset();
return;
}
}
var input = event.target;
var reader = new FileReader();
reader.readAsText(input.files[0]);
reader.onload = (data) => {
let csvData: any = reader.result;
let csvRecordsArray = csvData.split(/rn|n/);
var headerLength = -1;
if (CSVConstants.isHeaderPresentFlag) {
let headersRow = this.fileUtil.getHeaderArray(csvRecordsArray, CSVConstants.tokenDelimeter);
headerLength = headersRow.length;
}
this.csvRecords = this.fileUtil.getDataRecordsArrayFromCSVFile(csvRecordsArray,
headerLength, CSVConstants.validateHeaderAndRecordLengthFlag, CSVConstants.tokenDelimeter);
if (this.csvRecords == null) {
//If control reached here it means csv file contains error, reset file.
this.fileReset();
}
/* Remove the file so that user can upload same one after making changes, otherwise change event
will not be called */
this.clearFile();
/* Remove the first header row */
this.csvRecords.splice(0, 1);
this.csvRecords.map((record: any) => {
this.external_contacts_arr.push({
email: record[0],
first_name: record[1],
last_name: record[2],
designation: record[3],
})
});
this.removeBlankRecords();
//document.getElementById(`${this.uniquePrefix}-other-tab`).click();
}
reader.onerror = () => {
this.utilService.showToastMsg("error", 'Unable to read ' + input.files[0]);
};
}
answered Nov 13 '18 at 6:27
Chaudhary
829628
829628
add a comment |
add a comment |
You can use the below custom function to do the needful :
private extractData(data) { // Input csv data to the function
let csvData = data;
let allTextLines = csvData.split(/rn|n/);
let headers = allTextLines[0].split(',');
let lines = ;
for ( let i = 0; i < allTextLines.length; i++) {
// split content based on comma
let data = allTextLines[i].split(',');
if (data.length == headers.length) {
let tarr = ;
for ( let j = 0; j < headers.length; j++) {
tarr.push(data[j]);
}
lines.push(tarr);
}
}
console.log(lines); //The data in the form of 2 dimensional array.
}
You can read the file inside the file listener function like this:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var file = files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event){
var csv = event.target.result; // Content of CSV file
this.extractData(csv); //Here you can call the above function.
}
}
Inside html use below code:
<input type="file" (change)="handleFileSelect($event)"/>
add a comment |
You can use the below custom function to do the needful :
private extractData(data) { // Input csv data to the function
let csvData = data;
let allTextLines = csvData.split(/rn|n/);
let headers = allTextLines[0].split(',');
let lines = ;
for ( let i = 0; i < allTextLines.length; i++) {
// split content based on comma
let data = allTextLines[i].split(',');
if (data.length == headers.length) {
let tarr = ;
for ( let j = 0; j < headers.length; j++) {
tarr.push(data[j]);
}
lines.push(tarr);
}
}
console.log(lines); //The data in the form of 2 dimensional array.
}
You can read the file inside the file listener function like this:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var file = files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event){
var csv = event.target.result; // Content of CSV file
this.extractData(csv); //Here you can call the above function.
}
}
Inside html use below code:
<input type="file" (change)="handleFileSelect($event)"/>
add a comment |
You can use the below custom function to do the needful :
private extractData(data) { // Input csv data to the function
let csvData = data;
let allTextLines = csvData.split(/rn|n/);
let headers = allTextLines[0].split(',');
let lines = ;
for ( let i = 0; i < allTextLines.length; i++) {
// split content based on comma
let data = allTextLines[i].split(',');
if (data.length == headers.length) {
let tarr = ;
for ( let j = 0; j < headers.length; j++) {
tarr.push(data[j]);
}
lines.push(tarr);
}
}
console.log(lines); //The data in the form of 2 dimensional array.
}
You can read the file inside the file listener function like this:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var file = files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event){
var csv = event.target.result; // Content of CSV file
this.extractData(csv); //Here you can call the above function.
}
}
Inside html use below code:
<input type="file" (change)="handleFileSelect($event)"/>
You can use the below custom function to do the needful :
private extractData(data) { // Input csv data to the function
let csvData = data;
let allTextLines = csvData.split(/rn|n/);
let headers = allTextLines[0].split(',');
let lines = ;
for ( let i = 0; i < allTextLines.length; i++) {
// split content based on comma
let data = allTextLines[i].split(',');
if (data.length == headers.length) {
let tarr = ;
for ( let j = 0; j < headers.length; j++) {
tarr.push(data[j]);
}
lines.push(tarr);
}
}
console.log(lines); //The data in the form of 2 dimensional array.
}
You can read the file inside the file listener function like this:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
var file = files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event){
var csv = event.target.result; // Content of CSV file
this.extractData(csv); //Here you can call the above function.
}
}
Inside html use below code:
<input type="file" (change)="handleFileSelect($event)"/>
answered Nov 13 '18 at 8:03
Prasan Karunarathne
1925
1925
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f47673788%2fhow-to-import-csv-file-in-angular-4-and-stored-data-in-database%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have a look at this answer
– Aravind
Dec 6 '17 at 12:00
i didn't get data of CSV file? @Szarik
– Chaudhary
Dec 6 '17 at 12:49
@Chaudhary had you get the solution of your answer.
– Vishwa Pratap
Nov 12 '18 at 16:22
@VishwaPratap i post my answer, you can change the function as per your requirement.
– Chaudhary
Nov 13 '18 at 6:28
@Chaudhary thanks for your response
– Vishwa Pratap
Nov 13 '18 at 10:30