Skip to main content

NodeJS

Tarballs are available on https://cdn.sheetjs.com.

Each individual version can be referenced using a similar URL pattern.
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:

yarn add https://cdn.sheetjs.com/xlsx-0.18.10/xlsx-0.18.10.tgz
danger

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:

yarn remove xlsx
yarn add file:vendor/xlsx-0.18.10.tgz

Vendoring

For general stability, "vendoring" modules is the recommended approach:

1) Download the tarball (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.tgz

2) 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:

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);