Learner.123
Learner.123

Reputation: 177

How can I get the count of rows in my uploaded excel

I have uploaded an excel and need to read it and get the count of the number of rows in it.

I have tried the below codes but it doesn't seen to work out.

I have been getting so many errors like,"_fs.readFileSync is not a function" "f.slice is not a function" and currently I am stuck at "input.replace is not a function". Please let me know where am I going wrong or what actually needs to be done

Component.ts

<pre>

    proceedUpload(){

         if(this.file != null) {


        var workbook = XLSX.read(this.file);


        var firstSheet = workbook.SheetNames[0];


        var excelRows = XLSX.utils.sheet_to_json(workbook.Sheets[firstSheet]);
        var number = excelRows.length();

          if( number > 0 )
          {
              this.uploadMessage = true;
          }
          else
          {
            this.uploadMessage = false;
          }


        let formData: FormData = new FormData();
        formData.append('Files', this.file);

        this.http.post("Url", formData).map(res => res.json())
          .catch(error => Observable.throw(error))
          .subscribe(
            data => console.log('success'),
            error => console.log(error)
          )

        }
        else
        {
            alert("Please upload a file!")
        } 
    </pre>

Component.html

<div *ngIf="uploadMessage">
<p>{{number}} uploaded!!</p>
</div>

Upvotes: 3

Views: 9638

Answers (3)

Kevin S
Kevin S

Reputation: 1

If this.file is still of type File, you need to use FileReader.readAsArrayBuffer() to read its content.

const reader = new FileReader();

reader.onload = function (e) {
   const data = new Uint8Array(e.target.result);
   var workbook = XLSX.read(this.file)
   .
   .
   //rest of your code
   .
   .
};

reader.readAsArrayBuffer(file);

Upvotes: 0

Wolfyr
Wolfyr

Reputation: 479

let excelRowsObjArr = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[firstSheet]);

On this one you can do:

excelRowsObjArr.length

For more info you can go here: https://www.aspsnippets.com/Articles/Read-Parse-Excel-File-XLS-and-XLSX-using-JavaScript.aspx

Upvotes: 1

SGalea
SGalea

Reputation: 722

const table = XLSX.readFile('mytable.xlsx');
const sheet = table.Sheets[table.SheetNames[0]];
var range = XLSX.utils.decode_range(sheet['!ref']);
console.log(range.e.r);

Source

Upvotes: 3

Related Questions