NodeJS
Tarballs are available on https://cdn.sheetjs.com.
https://cdn.sheetjs.com/xlsx-0.18.10/xlsx-0.18.10.tgz is the URL for 0.18.10
Installation
Tarballs can be directly installed using a package manager:
- npm
- pnpm
- Yarn
npm i --save https://cdn.sheetjs.com/xlsx-0.18.10/xlsx-0.18.10.tgz
pnpm install https://cdn.sheetjs.com/xlsx-0.18.10/xlsx-0.18.10.tgz
yarn add https://cdn.sheetjs.com/xlsx-0.18.10/xlsx-0.18.10.tgz
Older releases are technically available on the public npm registry as xlsx
,
but the registry is out of date. The latest version on that registry is 0.18.5
This is a known registry bug
https://cdn.sheetjs.com/ is the authoritative source for SheetJS scripts.
For existing projects, the easiest approach is to uninstall and reinstall:
- npm
- pnpm
- Yarn
npm rm --save xlsx
npm i --save file:vendor/xlsx-0.18.10.tgz
pnpm rm xlsx
pnpm install file:vendor/xlsx-0.18.10.tgz
yarn remove xlsx
yarn add file:vendor/xlsx-0.18.10.tgz
Vendoring
For general stability, "vendoring" modules is the recommended approach:
xlsx-0.18.10.tgz
) for the desired version. The current version is available at https://cdn.sheetjs.com/xlsx-0.18.10/xlsx-0.18.10.tgz2) Create a vendor
subdirectory at the root of your project and move the
tarball to that folder. Add it to your project repository.
3) Install the tarball using a package manager:
- npm
- pnpm
- Yarn
npm i --save file:vendor/xlsx-0.18.10.tgz
pnpm install file:vendor/xlsx-0.18.10.tgz
yarn add file:vendor/xlsx-0.18.10.tgz
The package will be installed and accessible as xlsx
.
Usage
CommonJS require
By default, the module supports require
and it will automatically add support
for streams and filesystem access:
var XLSX = require("xlsx");
ESM import
The module also ships with xlsx.mjs
for use with import
. The mjs
version
does not automatically load native node modules, so they must be added manually:
import * as XLSX from 'xlsx/xlsx.mjs';
/* load 'fs' for readFile and writeFile support */
import * as fs from 'fs';
XLSX.set_fs(fs);
/* load 'stream' for stream support */
import { Readable } from 'stream';
XLSX.stream.set_readable(Readable);
/* load the codepage support library for extended support with older formats */
import * as cpexcel from 'xlsx/dist/cpexcel.full.mjs';
XLSX.set_cptable(cpexcel);