--- title: Standalone Browser Scripts 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! ::: :::danger 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. {`\ `} `xlsx.mini.min.js` is a slimmer build that omits the following features: - CSV and SYLK encodings (directly affecting users outside of the United States) - XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003 / Numbers file formats - Stream utility functions
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, making a local copy of SheetJS scripts ("vendoring") is strongly recommended. Vendoring decouples websites from SheetJS infrastructure.
  1. Download the script (xlsx.full.min.js) for the desired version. The current version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"}

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: A `script` reference to the shim must be added 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 in HTML pages using `script type="module"`. The ["Frameworks and Bundlers"](/docs/getting-started/installation/frameworks) section covers imports in projects using bundlers (ViteJS) or frameworks (Kaioken / ReactJS / Angular / VueJS / Svelte) ::: 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 :::danger pass Bower is deprecated and the maintainers recommend using other tools. ::: The Bower package manager supports tarballs from the SheetJS CDN: {`\ npx bower install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} Bower will place the standalone scripts in `bower_components/js-xlsx/dist/`