forked from sheetjs/sheetjs
SheetJS
807eac273b
- systemjs browser example - more precise file type resolution - small corner cases from test corpus - removed neq in tests (fixes #735 h/t @TeamworkGuy2) - package.json devDependencies versions (fixes #740 h/t @the-spyke) |
||
---|---|---|
.. | ||
.gitignore | ||
app.js | ||
main.js | ||
Makefile | ||
README.md | ||
systemjs.html | ||
systemjsnode.js |
SystemJS Demos
SystemJS supports both browser and nodejs deployments. It does not recognize browser environments and automatically suppress node core modules, but with some configuration magic SystemJS can load the library.
Browser
SystemJS fails by default because the library does not export anything in the web browser. This is easily addressed in the config:
SystemJS.config({
meta: {
'xlsx': {
exports: 'XLSX' // <-- tell SystemJS to expose the XLSX variable
}
},
map: {
'xlsx': 'xlsx.full.min.js', // <-- make sure xlsx.full.min.js is in same dir
'fs': '', // <--|
'crypto': '', // <--| suppress native node modules
'stream': '' // <--|
}
});
SystemJS.import('main.js')
In your main JS script, just use require:
var XLSX = require('xlsx');
var w = XLSX.read('abc,def\nghi,jkl', {type:'binary'});
var j = XLSX.utils.sheet_to_json(w.Sheets[w.SheetNames[0]], {header:1});
console.log(j);
The file functions readFile
and writeFile
are not available in the browser.
Node
The node core modules should be mapped to their @node
equivalents:
var SystemJS = require('systemjs');
SystemJS.config({
map: {
'xlsx': 'node_modules/xlsx/xlsx.js',
'fs': '@node/fs',
'crypto': '@node/crypto',
'stream': '@node/stream'
}
});
And use is pretty straightforward:
SystemJS.import('xlsx').then(function(XLSX) {
/* XLSX is available here */
var w = XLSX.readFile('test.xlsx');
var j = XLSX.utils.sheet_to_json(w.Sheets[w.SheetNames[0]], {header:1});
console.log(j);
});