xls-parser

3.1.0 • Public • Published

xls-parser

Description

Parse csv, xls, xlsx into json. Having multiple sheets is not an issue we return and object for each sheet found. See example below for more info. Visit https://abelalvarez.info/xls-parser/ to test it online.

Install

npm install xls-parser

Use node

To use this library you need to have already the file uploaded, there are many libraries out there to select a file from your system. In the example below I provided an HTML(bootstrap) snippet and a JS snippet, of the components you need to have.

Example

import xlsxParser from 'xls-parser';

xlsxParser
  .onFileSelection(file)
  .then(data => {
    var parsedData = data;
  });

<html>
...
<form>
  <div class="form-group">
    <label for="exampleFormControlFile1">Example file input</label>
    <input type="file" class="form-control-file" id="exampleFormControlFile1">
  </div>
</form>
...
</html>

Example using AngularJS Install

npm install ng-file-upload
npm install xls-parser

index.js

'use strict';

var angular = require('angular');

require('ng-file-upload');

angular.module('test-xls-parser', ['ngFileUpload'])
.component('testXlsParserUpload', {
    template: '<input type="file" ngf-select="vm.uploadFile($file)" ng-disabled="vm.disableUpload" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"/><pre>{{vm.data | json}}</pre>',
    controller: function() {
        var vm = this;
        var xlsParser = require('xls-parser');

        vm.uploadFile = function(file){
            xlsParser.onFileSelection(file)
            .then((data) => {
                vm.data = data;
            });
        }
    },
    controllerAs: 'vm'
});

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>XLS-Parser</title>
</head>
<body ng-app="test-xls-parser">
    <test-xls-parser-upload>loading</test-xls-parser-upload>
    
    <script src="bundle.min.js"></script>
</body>
</html>

input file

Test (sheet name)

Price |  Name
-----------------
4     |   a
8     |   b
9     |   c
4     |

Sheet1 (sheet name)

Name	| Lastname	| Age
-------------------------
Nico	| Jhones		| 69
Carl	|       		| 4
Abel	|       		| 30
Gabe	|       		|

output sample

{
  "Test": [
    {
      "Price": 4,
      "Name": "a"
    },
    {
      "Price": 8,
      "Name": "b"
    },
    {
      "Price": 9,
      "Name": "c"
    },
    {
      "Price": 4
    }
  ],
  "Sheet1": [
    {
      "Name": "Nico",
      "Lastname": "Jhones",
      "Age": 69
    },
    {
      "Name": "Carl",
      "Age": 4
    },
    {
      "Name": "Abel",
      "Age": 55
    },
    {
      "Name": "Gabe"
    }
  ]
}

Optional Parameters

There are optional parameters to show. They should be provided in the second argument

The default values are { showNullProperties = false, hideEmptyRows = true }
onFileSelection = (file, { showNullProperties = false, hideEmptyRows = true })

Setting showNullProperties = true; will show all properties on every object example

input file

Test (sheet name)

Price |  Name
-----------------
4     |   a
8     |   b
      |   c
4     |

output sample

{
  "Test": [
    {
      "Price": 4,
      "Name": "a"
    },
    {
      "Price": 8,
      "Name": "b"
    },
    {
      "Price": null,
      "Name": "c"
    },
    {
      "Price": 4
      "Name": null
    }
  ]
}

Setting { showNullProperties = true hideEmptyRows = false } will show all properties on every object example including empty rows with null values

input file

Test (sheet name)

Price |  Name
-----------------
4     |   a
8     |   b
      |
      |   c
4     |

output sample

{
  "Test": [
    {
      "Price": 4,
      "Name": "a"
    },
    {
      "Price": 8,
      "Name": "b"
    },
    {
      "Price": null,
      "Name": null
    },
    {
      "Price": null,
      "Name": "c"
    },
    {
      "Price": 4
      "Name": null
    }
  ]
}

Readme

Keywords

Package Sidebar

Install

npm i xls-parser

Weekly Downloads

468

Version

3.1.0

License

ISC

Unpacked Size

9.62 kB

Total Files

4

Last publish

Collaborators

  • abelalvarez89