Sheetjs: npm installed node-xlsx does not provide xlsx.utils. Use the npm 'xlsx' package instead.

Created on 5 Nov 2018  路  2Comments  路  Source: SheetJS/sheetjs

Hi - Writing for a friend.. hope it helps someone else.

I was (and am still) mixing up libraries when I found myself banging my head against all examples pointing to npm install node-xlsx and then simply cite xlsx.utils.XYZ, but for me, .utils was not an object. Elsewhere I found this debug snippet:

...
xlsx = require('node-xlsx'),
...
console.log(Object.keys(xlsx));  // not even down to .utils, just main xlsx

Output of this is:
[ 'parse', 'build', 'default' ]

Ah hah. So I was in fact using the wrong npm. Instead of node-xlsx I needed just node install --save xlsx and all works as expected. console.log(Object.keys(xlsx)); gives this and .utils gives that.
This:
[ 'version', 'stream', 'parse_xlscfb', 'parse_ods', 'parse_fods', 'write_ods', 'parse_zip', 'read', 'readFile', 'readFileSync', 'write', 'writeFile', 'writeFileSync', 'writeFileAsync', 'utils', 'SSF', 'CFB' ]

That:

[ 'encode_col', 'encode_row', 'encode_cell', 'encode_range', 'decode_col', 'decode_row', 'split_cell', 'decode_cell', 'decode_range', 'format_cell', 'get_formulae', 'make_csv', 'make_json', 'make_formulae', 'sheet_add_aoa', 'sheet_add_json', 'aoa_to_sheet', 'json_to_sheet', 'table_to_sheet', 'table_to_book', 'sheet_to_csv', 'sheet_to_txt', 'sheet_to_json', 'sheet_to_html', 'sheet_to_dif', 'sheet_to_slk', 'sheet_to_eth', 'sheet_to_formulae', 'sheet_to_row_object_array', 'consts', 'book_new', 'book_append_sheet', 'book_set_sheet_visibility', 'cell_set_number_format', 'cell_set_hyperlink', 'cell_set_internal_link', 'cell_add_comment', 'sheet_set_array_formula' ]
Thanks for listening.

Most helpful comment

@bronius tell your friend that node-xlsx and xlsx are in fact different projects. It's confusing. Someone else also published js-xlsx on npm so it gets even more confusing.

All 2 comments

@bronius tell your friend that node-xlsx and xlsx are in fact different projects. It's confusing. Someone else also published js-xlsx on npm so it gets even more confusing.

Ok thanks for validating my observation, psychological framework, and even including a little humor. :D I assure you my friend feels better.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jamespan0 picture jamespan0  路  3Comments

DannyRyman picture DannyRyman  路  3Comments

gustavosimil picture gustavosimil  路  3Comments

Sankrish picture Sankrish  路  4Comments

Alex0007 picture Alex0007  路  3Comments