---
pagination_prev: getting-started/index
pagination_next: getting-started/examples/index
sidebar_position: 1
sidebar_custom_props:
summary: Classic pages with simple `}
:::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 pass
A number of services host older versions of the SheetJS libraries. Due to
syncing issues, they are generally out of date.
**The SheetJS CDN** https://cdn.sheetjs.com/ **is the authoritative source**
**for SheetJS scripts**
:::
## Browser Scripts
`xlsx.full.min.js` is the complete standalone script. It includes support for
reading and writing many spreadsheet formats.
{`\
`}
A slimmer build is generated at `dist/xlsx.mini.min.js`. Compared to full build:
- codepage library skipped (no support for XLS encodings)
- no support for XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003 / Numbers
- node stream utils removed
How to integrate the mini build (click to show)
Replace references to `xlsx.full.min.js` with `xlsx.mini.min.js`. Starting from
scratch, a single script tag should be added at the top of the HTML page:
{`\
`}
### Vendoring
For general stability, "vendoring" scripts is the recommended approach:
2) Move the script to a `public` folder with other scripts.
3) Reference the local script from HTML pages:
```html
```
This script assigns to `window.XLSX`. The global can be used in other scripts.
### Internet Explorer and Older Browsers
For broad compatibility with JavaScript engines, the library is written using
ECMAScript 3 language dialect. A "shim" script provides implementations of
functions for older browsers and environments.
Due to SSL compatibility issues, older versions of IE will not be able to
use the CDN scripts directly. They should be downloaded and saved to a public
directory in the site:
Add a `script` reference to the shim before the standalone script:
```html
```
### Web Workers
The standalone scripts can be loaded using `importScripts` at the top of the
worker scripts:
{`\
importScripts("https://cdn.sheetjs.com/xlsx-${current}/package/dist/shim.min.js");
importScripts("https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.min.js");`}
## ECMAScript Module Imports
:::caution pass
This section refers to imports using `script type="module"`. For imports in
modern projects using Webpack or React or Angular or VueJS, the installation is
described [in "Frameworks and Bundlers"](/docs/getting-started/installation/frameworks).
:::
The ECMAScript Module build is saved to `xlsx.mjs` and can be directly added to
a page with a `script` tag using `type="module"`:
{`\
`}
If Encoding support is required, `cpexcel.full.mjs` must be manually imported:
{`\
`}
Web Worker support is noted in [the "Web Workers" demo](/docs/demos/bigdata/worker#installation)
### Dynamic Imports
Dynamic imports with `import()` will only download the SheetJS scripts when they
are used. This example will download the library when data is exported:
{`\
`}
:::caution pass
The callback functions must be marked as `async` and the script block must have
the attribute `type="module"`
:::
If Encoding support is required, `cpexcel.full.mjs` must be manually imported:
{`\
`}
## Bower
:::warning pass
Bower is deprecated and the maintainers recommend using other tools.
:::
The Bower package manager plays nice with the CDN tarballs:
{`\
npx bower install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
Bower will place the standalone scripts in `bower_components/js-xlsx/dist/`