Skip to main content

Bun

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

https://cdn.sheetjs.com/xlsx-0.20.0/xlsx-0.20.0.tgz is the URL for version 0.20.0

Bun support is considered experimental.

Great open source software grows with user tests and reports. Any issues should be reported to the Bun project for further diagnosis.

Installation

Tarballs can be directly installed with bun install1:

bun install https://cdn.sheetjs.com/xlsx-0.20.0/xlsx-0.20.0.tgz

Watch the repo or subscribe to the RSS feed to be notified when new versions are released!

At the time of writing bun install does not support vendored tarballs2.

Usage

Bun supports both "CommonJS" and "ESM" modules.

It is strongly recommended to use CommonJS in Bun.

CommonJS require

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

const { readFile } = require("xlsx");
const wb = readFile("pres.numbers"); // works!

ESM import

When importing the library using ESM import statements, the native NodeJS modules are not loaded. They must be added manually:

import * as XLSX from 'xlsx';

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

  1. Bun releases before the official 1.0.0 release did not support tarball dependencies. If a pre-1.0.0 release must be used, the module can be installed with a package manager like Yarn or the ESM script can be vendored.
  2. See the relevant issue in the Bun issue tracker