2023-05-07 09:58:36 -04:00

4.4 KiB

pagination_prev pagination_next sidebar_position sidebar_custom_props
getting-started/index getting-started/example 3
Server-side and other frameworks using NodeJS modules

import current from '/version.js'; import CodeBlock from '@theme/CodeBlock';


import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

Tarballs are available on{current}/xlsx-{current}.tgz is the URL for version {current}


Tarballs can be directly installed using a package manager:

{`\ npm i --save${current}/xlsx-${current}.tgz`} {`\ pnpm install${current}/xlsx-${current}.tgz`} {`\ yarn add${current}/xlsx-${current}.tgz`}


Watch the repo or subscribe to the RSS feed to be notified when new versions are released!



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 is the authoritative source for SheetJS scripts.

For existing projects, the easiest approach is to uninstall and reinstall:

{`\ npm rm --save xlsx npm i --save${current}/xlsx-${current}.tgz`} {`\ pnpm rm xlsx pnpm install${current}/xlsx-${current}.tgz`} {`\ yarn remove xlsx yarn add${current}/xlsx-${current}.tgz`}

When the xlsx library is a dependency of a dependency, the overrides field in package.json can control module resolution:

{\ { // highlight-start "overrides": { "xlsx": "${current}/xlsx-${current}.tgz" } // highlight-end }}



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

1) Download the tarball (xlsx-{current}.tgz) for the desired version. The current version is available at{current}/xlsx-{current}.tgz

  1. Create a vendor subfolder at the root of your project and move the tarball to that folder. Add it to your project repository.

  2. Install the tarball using a package manager:

{`\ npm i --save file:vendor/xlsx-${current}.tgz`} {`\ pnpm install file:vendor/xlsx-${current}.tgz`} {`\ yarn add file:vendor/xlsx-${current}.tgz`}

The package will be installed and accessible as xlsx.


CommonJS require

By default, the module supports require and it will automatically add support for streams and file system 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';

/* load 'fs' for readFile and writeFile support */
import * as fs from 'fs';

/* load 'stream' for stream support */
import { Readable } from 'stream';;

/* load the codepage support library for extended support with older formats  */
import * as cpexcel from 'xlsx/dist/cpexcel.full.mjs';