docs.sheetjs.com/docz/docs/02-installation/04-nodejs.md

3.3 KiB

sidebar_position sidebar_custom_props
4
summary
Server-side and other frameworks using NodeJS modules

import current from '/version.js';

NodeJS

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

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

Each individual version can be referenced using a similar URL pattern.

<a href={https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz}>https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for {current}

https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz is a link to the latest version and will refresh on each release.

Installation

Tarballs can be directly installed using a package manager:

{`\
$ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
{`\
$ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
{`\
$ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}

Vendoring

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 https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz

  1. Create a vendor subdirectory 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 install --save file:vendor/xlsx-${current}.tgz`}
{`\
$ pnpm install --save file:vendor/xlsx-${current}.tgz`}
{`\
$ yarn add --save file:vendor/xlsx-0.18.7.tgz`}

The package will be installed and accessible as xlsx.

Usage

By default, the module supports require and it will automatically add support for streams and filesystem access:

var XLSX = require("xlsx");

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