xlsx-parse-json
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/xlsx-parse-json/ to test it online.
Install
npm install xlsx-parse-json
Web Usage
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 'xlsx-parse-json';
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 xlsx-parse-json
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 xlsxParser = require('xlsx-parse-json');
vm.uploadFile = function(file){
xlsxParser.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
}
]
}