sheetjs_sheetjs/docbits/10_install.md

196 lines
5.9 KiB
Markdown
Raw Normal View History

## Getting Started
### Installation
2022-02-12 06:31:47 +00:00
**Standalone Browser Scripts**
The complete browser standalone build is saved to `dist/xlsx.full.min.js` and
2022-04-14 07:27:38 +00:00
can be directly added to a page with a `<script>` tag:
```html
<script lang="javascript" src="dist/xlsx.full.min.js"></script>
```
2022-04-12 11:59:15 +00:00
Each standalone release script is available at <https://cdn.sheetjs.com/>. The
latest version uses the `latest` tag:
2017-09-24 23:40:09 +00:00
2022-04-12 11:59:15 +00:00
```html
<!-- use the latest version -->
<script lang="javascript" src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script>
```
2017-09-24 23:40:09 +00:00
2022-04-12 11:59:15 +00:00
A specific release can be referenced by version:
2017-09-24 23:40:09 +00:00
```html
2022-04-12 11:59:15 +00:00
<!-- use version 0.18.5 -->
<script lang="javascript" src="https://cdn.sheetjs.com/xlsx-0.18.5/package/dist/xlsx.full.min.js"></script>
2017-09-24 23:40:09 +00:00
```
2022-04-14 07:27:38 +00:00
For production use, scripts should be downloaded and added to a public folder
alongside other scripts.
2017-09-24 23:40:09 +00:00
</details>
<details>
<summary><b>Browser builds</b> (click to show)</summary>
The complete single-file version is generated at `dist/xlsx.full.min.js`
2022-02-26 04:32:40 +00:00
`dist/xlsx.core.min.js` omits codepage library (no support for XLS encodings)
A slimmer build is generated at `dist/xlsx.mini.min.js`. Compared to full build:
- codepage library skipped (no support for XLS encodings)
2022-02-26 04:32:40 +00:00
- no support for XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003 / Numbers
- node stream utils removed
2022-04-12 11:59:15 +00:00
These scripts are also available on the CDN:
```html
2022-04-14 07:27:38 +00:00
<!-- use xlsx.mini.min.js from the latest version -->
<script lang="javascript" src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.mini.min.js"></script>
2022-04-12 11:59:15 +00:00
```
</details>
2022-02-12 06:31:47 +00:00
With [bower](https://bower.io/search/?q=js-xlsx):
```bash
$ bower install js-xlsx
```
2022-02-14 01:28:13 +00:00
**ECMAScript Modules**
The ECMAScript Module build is saved to `xlsx.mjs` and can be directly added to
2022-04-14 07:27:38 +00:00
a page with a `script` tag using `type="module"`:
2022-02-14 01:28:13 +00:00
```html
<script type="module">
2022-04-14 07:27:38 +00:00
import { read, writeFileXLSX } from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs";
2022-02-14 01:28:13 +00:00
/* load the codepage support library for extended support with older formats */
2022-04-14 07:27:38 +00:00
import { set_cptable } from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs";
import * as cptable from 'https://cdn.sheetjs.com/xlsx-latest/package/dist/cpexcel.full.mjs';
2022-02-14 01:28:13 +00:00
set_cptable(cptable);
</script>
```
2022-04-14 07:27:38 +00:00
The NodeJS package also exposes the module with the `module` parameter, which is
supported in Angular and other projects:
2022-02-14 01:28:13 +00:00
```ts
import { read, writeFileXLSX } from "xlsx";
/* 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);
```
2022-02-12 06:31:47 +00:00
**Deno**
2022-04-12 11:59:15 +00:00
`xlsx.mjs` can be imported in Deno:
2022-02-12 06:31:47 +00:00
```ts
2022-04-12 11:59:15 +00:00
// @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts"
import * as XLSX from 'https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs';
2022-02-13 09:35:34 +00:00
/* load the codepage support library for extended support with older formats */
2022-04-12 11:59:15 +00:00
import * as cptable from 'https://cdn.sheetjs.com/xlsx-latest/package/dist/cpexcel.full.mjs';
2022-02-13 09:35:34 +00:00
XLSX.set_cptable(cptable);
2022-02-12 06:31:47 +00:00
```
**NodeJS**
2022-04-14 07:27:38 +00:00
Tarballs are available on <https://cdn.sheetjs.com>.
2022-04-12 11:59:15 +00:00
2022-04-14 07:27:38 +00:00
<https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz> is a link to the latest
version and will refresh on each release.
Each individual version can be referenced using a similar URL pattern.
<https://cdn.sheetjs.com/xlsx-0.18.6/xlsx-0.18.6.tgz> is the URL for `0.18.6`
2022-04-12 11:59:15 +00:00
Tarballs can be directly installed using a package manager:
```bash
$ npm install https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz # npm
$ pnpm install https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz # pnpm
$ yarn add https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz # yarn
```
2022-04-14 07:27:38 +00:00
For general stability, "vendoring" modules is the recommended approach:
1) Download the tarball (`xlsx-<version>.tgz`) for the desired version.
2) Create a `vendor` subdirectory 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:
```bash
2022-04-14 07:27:38 +00:00
# note : replace $VERSION with the actual version (e.g. latest or 0.18.6)
$ npm install --save file:vendor/xlsx-$VERSION.tgz # npm
$ pnpm install --save file:vendor/xlsx-$VERSION.tgz # pnpm
$ yarn add file:vendor/xlsx-$VERSION.tgz # yarn
```
2022-04-14 07:27:38 +00:00
The package will be installed and accessible as `xlsx`.
2022-02-12 06:31:47 +00:00
By default, the module supports `require`:
2022-02-12 06:31:47 +00:00
```js
var XLSX = require("xlsx");
```
2022-02-12 06:31:47 +00:00
The module also ships with `xlsx.mjs` for use with `import`:
```js
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);
2022-02-12 06:31:47 +00:00
/* load the codepage support library for extended support with older formats */
import * as cpexcel from 'xlsx/dist/cpexcel.full.mjs';
XLSX.set_cptable(cpexcel);
```
2022-02-13 09:35:34 +00:00
**Photoshop and InDesign**
2022-02-12 06:31:47 +00:00
2022-04-14 07:27:38 +00:00
`dist/xlsx.extendscript.js` is an ExtendScript build for Photoshop and InDesign.
<https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.extendscript.js> is the
latest build. It can be directly referenced with a `#include` directive:
```extendscript
#include "xlsx.extendscript.js"
```
<details>
<summary><b>Internet Explorer and ECMAScript 3 Compatibility</b> (click to show)</summary>
For broad compatibility with JavaScript engines, the library is written using
ECMAScript 3 language dialect as well as some ES5 features like `Array#forEach`.
Older browsers require shims to provide missing functions.
To use the shim, add the shim before the script tag that loads `xlsx.js`:
```html
<!-- add the shim first -->
<script type="text/javascript" src="shim.min.js"></script>
<!-- after the shim is referenced, add the library -->
<script type="text/javascript" src="xlsx.full.min.js"></script>
```
The script also includes `IE_LoadFile` and `IE_SaveFile` for loading and saving
files in Internet Explorer versions 6-9. The `xlsx.extendscript.js` script
bundles the shim in a format suitable for Photoshop and other Adobe products.
</details>