--- pagination_prev: getting-started/index pagination_next: getting-started/example sidebar_position: 2 sidebar_custom_props: summary: Angular, React, VueJS, Webpack, etc. --- import current from '/version.js'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; # Frameworks and Bundlers Each standalone release package is available at . The NodeJS package is designed to be used with frameworks and bundlers. It is a proper ECMAScript Module release which can be optimized with developer tools.

https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for version {current}

## Installation Tarballs can be directly installed using a package manager: {`\ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} {`\ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} {`\ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} Once installed, the library can be imported under the name `xlsx`: ```js import { read, writeFileXLSX } from "xlsx"; ``` The ["Bundlers" demo](/docs/demos/bundler) includes examples for specific tools. :::tip pass [Watch the repo](https://git.sheetjs.com/SheetJS/sheetjs) or subscribe to the [RSS feed](https://git.sheetjs.com/sheetjs/sheetjs/tags.rss) to be notified when new versions are released! ::: :::warning 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 https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} {`\ pnpm rm xlsx pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} {`\ yarn remove xlsx yarn add https://cdn.sheetjs.com/xlsx-${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": "https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz" } // highlight-end }`} ::: ### 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

2) Create a `vendor` subfolder 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 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`. ## Usage With most frameworks and bundler tools, named imports are recommended: ```js import { read, utils } from 'xlsx'; ``` Some legacy bundlers require the glob import: ```js import * as XLSX from 'xlsx'; const { read, utils } = XLSX; ``` For legacy bundlers that support CommonJS, `require` will work: ```js var XLSX = require("xlsx"); var read = XLSX.read, utils = XLSX.utils; ``` The ["Bundlers" demo](/docs/demos/bundler) includes examples for specific tools. ## Encoding support If Encoding support is required, `cpexcel.full.mjs` must be manually imported: ```js /* load the codepage support library for extended support with older formats */ import { set_cptable } from "xlsx"; import * as cptable from 'xlsx/dist/cpexcel.full.mjs'; set_cptable(cptable); ```