Demo refresh

This commit is contained in:
SheetJS 2025-06-20 01:45:27 -04:00
parent 4e3a0637ea
commit 2d6b139ef7
38 changed files with 251 additions and 96 deletions

@ -354,7 +354,7 @@
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
<Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell>
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
<Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell>
</Row>
<Row>

@ -35,12 +35,12 @@ This demo was tested in the following configurations:
| Platform | Architecture | Date |
|:------------------------------------------------------------------|:-------------|:-----------|
| NVIDIA RTX 5090 (32 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-05-17 |
| NVIDIA RTX 5090 (32 GB VRAM) + Ryzen Z1 Extreme (24 GB RAM) | `win11-x64` | 2025-06-17 |
| NVIDIA RTX 4090 (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-04-17 |
| NVIDIA RTX 4090 (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `linux-x64` | 2025-01-28 |
| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-12 |
| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-06-20 |
| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `linux-x64` | 2025-01-29 |
| Intel Arc B580 (12 GB VRAM) + Ryzen Z1 Extreme (24 GB RAM) | `win11-x64` | 2025-01-24 |
| Intel Arc B580 (12 GB VRAM) + Ryzen Z1 Extreme (24 GB RAM) | `win11-x64` | 2025-06-20 |
| Intel Arc B580 (12 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `linux-x64` | 2025-02-08 |
| Apple M4 Max 16-Core CPU + 40-Core GPU (48 GB unified memory) | `darwin-arm` | 2025-03-06 |
| Apple M2 Max 12-Core CPU + 30-Core GPU (32 GB unified memory) | `darwin-arm` | 2025-03-25 |
@ -723,7 +723,7 @@ a [sample cars dataset](pathname:///cd.xls) and displays the results.
:::caution pass
This demo was tested using the ChatQA-1.5 model[^9] in Ollama.
This demo was tested using the Phi-4[^9] in Ollama.
The tested model used up to 10GB VRAM. It is strongly recommended to run the
demo on a GPU with at least 12GB VRAM or a newer Apple Silicon Mac with at least
@ -854,7 +854,7 @@ npm i --save https://sheet.lol/balls/xlsx-${current}.tgz`}
4) Install dependencies:
```bash
npm i --save @langchain/core@0.3.57 langchain@0.3.21 @langchain/ollama@0.2.1 peggy@3.0.2
npm i --save @langchain/core@0.3.59 langchain@0.3.28 @langchain/ollama@0.2.2 peggy@3.0.2
```
:::note pass
@ -863,7 +863,7 @@ In some test runs, there were error messages relating to dependency and peer
dependency versions. The `--force` flag will suppress version mismatch errors:
```bash
npm i --save @langchain/core@0.3.57 langchain@0.3.21 @langchain/ollama@0.2.1 peggy@3.0.2 --force
npm i --save @langchain/core@0.3.59 langchain@0.3.28 @langchain/ollama@0.2.2 peggy@3.0.2 --force
```
:::
@ -890,10 +890,10 @@ curl.exe -LO https://docs.sheetjs.com/cd.xls
:::
6) Install the `llama3-chatqa:8b-v1.5-q8_0` model using Ollama:
6) Install the `phi4:14b` model using Ollama:
```bash
ollama pull llama3-chatqa:8b-v1.5-q8_0
ollama pull phi4:14b
```
<details>
@ -975,5 +975,5 @@ charts, tables, and other features.
[^6]: See ["Supported Output Formats" type in "Writing Files"](/docs/api/write-options#supported-output-formats)
[^7]: See ["Workbook Object"](/docs/csf/book)
[^8]: See [`sheet_to_json` in "Utilities"](/docs/api/utilities/array#array-output)
[^9]: See [the official ChatQA website](https://chatqa-project.github.io/) for the ChatQA paper and other model details.
[^9]: See [the Phi-4 Technical Report](https://arxiv.org/abs/2412.08905) for more details.
[^10]: Select ["Windows" `x86_64`](https://conda-forge.org/download/) in the Installation page.

@ -6,7 +6,7 @@ pagination_next: demos/frontend/index
---
<head>
<script src="https://cdn.jsdelivr.net/npm/danfojs@1.1.2/lib/bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/danfojs@1.2.0/lib/bundle.min.js"></script>
</head>
[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
@ -23,8 +23,8 @@ This demo was tested in the following deployments:
| Platform | Version | Date |
|:-------------|:--------|:-----------|
| Chromium 131 | `1.1.2` | 2025-01-01 |
| Safari 18.2 | `1.1.2` | 2025-01-01 |
| Chromium 137 | `1.2.0` | 2025-06-16 |
| Safari 18.5 | `1.2.0` | 2025-06-16 |
| Konqueror 22 | `1.1.2` | 2025-04-23 |
:::
@ -34,7 +34,7 @@ This demo was tested in the following deployments:
The live demos on this page include the DanfoJS browser bundle:
```html
<script src="https://cdn.jsdelivr.net/npm/danfojs@1.1.2/lib/bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/danfojs@1.2.0/lib/bundle.min.js"></script>
```
There are known issues with the documentation generator. If a demo explicitly

@ -44,7 +44,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | Duktape `2.7.0` | 2.2.3 | 3.13.2 | 2025-03-30 |
| `win11-x64` | Duktape `2.7.0` | 2.2.3 | 3.11.9 | 2025-04-28 |
| `win11-arm` | Duktape `2.7.0` | 2.2.3 | 3.13.2 | 2025-02-23 |
| `linux-x64` | Duktape `2.7.0` | 1.5.3 | 3.11.7 | 2025-01-01 |
| `linux-x64` | Duktape `2.7.0` | 2.1.4 | 3.12.3 | 2025-06-16 |
| `linux-arm` | Duktape `2.7.0` | 1.5.3 | 3.11.2 | 2025-02-16 |
:::
@ -548,7 +548,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | Duktape `2.7.0` | 1.26.0 | 3.13.2 | 2025-03-30 |
| `win11-x64` | Duktape `2.7.0` | 1.28.1 | 3.11.9 | 2025-04-28 |
| `win11-arm` | Duktape `2.7.0` | 1.23.0 | 3.13.2 | 2025-02-23 |
| `linux-x64` | Duktape `2.7.0` | 1.18.0 | 3.11.7 | 2025-01-01 |
| `linux-x64` | Duktape `2.7.0` | 1.30.0 | 3.12.3 | 2025-06-16 |
| `linux-arm` | Duktape `2.7.0` | 1.22.0 | 3.11.2 | 2025-02-16 |
:::
@ -656,7 +656,7 @@ It is recommended to use a virtual environment.
- Debian and Ubuntu distributions:
```bash
sudo apt-get install python3.11-venv
sudo apt-get install python3-venv
```
- `venv` is included in the `python` package in Arch Linux-based platforms.

@ -177,7 +177,7 @@ document.getElementById("xport").addEventListener("click", function() {
prez.forEach(function(row) {
row.start = row.terms.find(function(term) {
return term.type === "prez";
}).start
}).start;
});
prez.sort(function(l,r) { return l.start.localeCompare(r.start); });

@ -34,21 +34,21 @@ This demo was tested in the following environments:
| Browserify | Date |
|:-----------|:-----------|
| `17.0.1` | 2025-01-07 |
| `16.5.2` | 2025-01-07 |
| `15.2.0` | 2025-01-07 |
| `14.5.0` | 2025-01-07 |
| `13.3.0` | 2025-01-07 |
| `12.0.2` | 2025-01-07 |
| `11.2.0` | 2025-01-07 |
| `10.2.6` | 2025-01-07 |
| `9.0.8` | 2025-01-07 |
| `8.1.3` | 2025-01-07 |
| `7.1.0` | 2025-01-07 |
| `6.3.4` | 2025-01-07 |
| `5.13.1` | 2025-01-07 |
| `4.2.3` | 2025-01-07 |
| `3.46.1` | 2025-01-07 |
| `17.0.1` | 2025-06-18 |
| `16.5.2` | 2025-06-18 |
| `15.2.0` | 2025-06-18 |
| `14.5.0` | 2025-06-18 |
| `13.3.0` | 2025-06-18 |
| `12.0.2` | 2025-06-18 |
| `11.2.0` | 2025-06-18 |
| `10.2.6` | 2025-06-18 |
| `9.0.8` | 2025-06-18 |
| `8.1.3` | 2025-06-18 |
| `7.1.0` | 2025-06-18 |
| `6.3.4` | 2025-06-18 |
| `5.13.1` | 2025-06-18 |
| `4.2.3` | 2025-06-18 |
| `3.46.1` | 2025-06-18 |
:::
@ -115,7 +115,7 @@ document.getElementById("xport").addEventListener("click", function() {
prez.forEach(function(row) {
row.start = row.terms.find(function(term) {
return term.type === "prez";
}).start
}).start;
});
prez.sort(function(l,r) { return l.start.localeCompare(r.start); });

@ -35,7 +35,7 @@ This demo was tested in the following environments:
| Version | Date |
|:----------|:-----------|
| `1.2.246` | 2025-01-07 |
| `1.21.1` | 2025-06-18 |
:::
@ -63,7 +63,7 @@ part of the `utils` object, the required import is:
import { utils, writeFile } from 'xlsx';
```
:::danger pass
:::caution pass
When this demo was tested against recent versions of `@swc/core`, `spack` crashed:
@ -75,7 +75,8 @@ thread '<unnamed>' panicked at 'cannot access a scoped thread local variable wit
This bug is known to affect versions `1.3.100`, `1.4.17`, and `1.10.6`.
Until the bug is fixed, it is strongly recommended to use `@swc/core@1.2.246`.
This bug was fixed in version `1.21.1`. It is strongly recommended to upgrade
existing projects to use `1.21.1` or to downgrade to `1.2.246`.
:::
@ -94,17 +95,17 @@ npm init -y
<Tabs groupId="pm">
<TabItem value="npm" label="npm">
<CodeBlock language="bash">{`\
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz regenerator-runtime @swc/cli @swc/core@1.2.246`}
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz regenerator-runtime @swc/cli @swc/core@1.21.1`}
</CodeBlock>
</TabItem>
<TabItem value="pnpm" label="pnpm">
<CodeBlock language="bash">{`\
pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz regenerator-runtime @swc/cli @swc/core@1.2.246`}
pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz regenerator-runtime @swc/cli @swc/core@1.21.1`}
</CodeBlock>
</TabItem>
<TabItem value="yarn" label="Yarn" default>
<CodeBlock language="bash">{`\
yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz regenerator-runtime @swc/cli @swc/core@1.2.246`}
yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz regenerator-runtime @swc/cli @swc/core@1.21.1`}
</CodeBlock>
</TabItem>
</Tabs>

@ -334,8 +334,8 @@ This demo was tested in the following environments:
| Architecture | PhantomJS | Date |
|:-------------|:----------|:-----------|
| `darwin-x64` | `2.1.1` | 2025-03-31 |
| `win11-x64` | `2.1.1` | 2025-01-19 |
| `linux-x64` | `2.1.1` | 2025-01-07 |
| `win11-x64` | `2.1.1` | 2025-06-18 |
| `linux-x64` | `2.1.1` | 2025-06-16 |
:::
@ -421,7 +421,7 @@ a different error after assignment:
This error is resolved by ignoring SSL errors. The complete command is:
```bash
env OPENSSL_CONF=/dev/null QT_QPA_PLATFORM=phantom ./phantomjs-2.1.1-linux-x86_64/bin/phantomjs --ignore-ssl-errors=true test.js
env OPENSSL_CONF=/dev/null QT_QPA_PLATFORM=phantom ./phantomjs-2.1.1-linux-x86_64/bin/phantomjs --ignore-ssl-errors=true SheetJSPhantom.js
```
:::

@ -379,7 +379,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | 0.1.48 | 2.2.12 | 2025-04-24 |
| `win11-x64` | 0.1.48 | 2.2.12 | 2025-04-28 |
| `win11-arm` | 0.1.48 | 2.2.1 | 2025-02-23 |
| `linux-x64` | 0.1.48 | 2.0.5 | 2025-01-10 |
| `linux-x64` | 0.1.48 | 2.3.6 | 2025-06-16 |
| `linux-arm` | 0.1.48 | 2.1.10 | 2025-02-16 |
:::

@ -51,7 +51,7 @@ This demo was tested in the following environments:
| Windows 11 C++ | `win11-arm` | `v0.77.2` | 2025-02-23 |
| Windows 11 C# | `win11-arm` | `v0.77.2` | 2025-02-23 |
| MacOS 15.3.2 | `darwin-x64` | `v0.76.7` | 2025-03-31 |
| MacOS 14.5 | `darwin-arm` | `v0.75.16` | 2024-12-22 |
| MacOS 14.5 | `darwin-arm` | `v0.78.3` | 2025-06-14 |
:::
@ -692,10 +692,10 @@ select `pres.xlsx` . The app will refresh and display the data from the file.
### Project Setup
1) Create a new React Native project using React Native `0.76.8`:
1) Create a new React Native project using React Native `0.78.2`:
```bash
npx -y @react-native-community/cli init SheetJSmacOS --version 0.76.8
npx -y @react-native-community/cli@15 init SheetJSmacOS --version 0.78.2
cd SheetJSmacOS
```
@ -1023,9 +1023,9 @@ If there are no instances, the app path can be found in the `DerivedData` folder
find ~/Library/Developer/Xcode/DerivedData -name SheetJSmacOS.app | grep Release
```
:::caution pass
:::info pass
During the last test, `xcodebuild` failed. Scrolling through the log reveals:
In an older test run, `xcodebuild` failed. Scrolling through the log reveals:
```
Welcome to Metro v0.80.12

@ -38,7 +38,7 @@ This demo was tested in the following deployments:
| Architecture | Version | NodeJS | Source | Date |
|:-------------|:---------------|:----------|:----------|:-----------|
| `darwin-x64` | `5.0.0-beta.4` | `14.15.3` | Pre-built | 2025-04-21 |
| `darwin-arm` | `4.0.0-rc.6` | `22.14.0` | Compiled | 2025-04-03 |
| `darwin-arm` | `5.0.0-beta.4` | `22.14.0` | Compiled | 2025-06-18 |
| `win11-x64` | `5.0.0-beta.4` | `14.15.3` | Pre-built | 2025-05-07 |
| `win11-arm` | `4.0.0-rc.6` | `22.14.0` | Compiled | 2025-02-23 |
| `linux-x64` | `5.0.0-beta.4` | `14.15.3` | Pre-built | 2025-04-21 |

@ -38,7 +38,7 @@ This demo was tested in the following deployments:
| Architecture | Version | NodeJS | Date |
|:-------------|:--------|:---------|:-----------|
| `darwin-x64` | `5.8.1` | `18.5.0` | 2025-04-21 |
| `darwin-arm` | `5.8.1` | `18.5.0` | 2025-05-11 |
| `darwin-arm` | `5.8.1` | `18.5.0` | 2025-06-18 |
| `win11-x64` | `5.8.1` | `18.5.0` | 2025-05-07 |
| `win11-arm` | `5.8.1` | `18.5.0` | 2025-02-23 |
| `linux-x64` | `5.8.1` | `18.5.0` | 2025-04-21 |

@ -31,7 +31,7 @@ This demo was tested in the following deployments:
| Architecture | Version | NodeJS | Date |
|:-------------|:--------|:----------|:-----------|
| `darwin-x64` | `2.4.4` | `23.11.0` | 2025-04-21 |
| `darwin-arm` | `2.4.4` | `22.14.0` | 2025-04-03 |
| `darwin-arm` | `2.4.4` | `23.11.0` | 2025-06-18 |
| `win11-x64` | `2.4.4` | `16.20.2` | 2025-05-07 |
| `linux-x64` | `2.4.4` | `23.11.0` | 2025-04-21 |
| `linux-arm` | `2.4.4` | `23.8.0` | 2025-02-15 |

@ -159,10 +159,10 @@ This demo was tested in the following deployments:
| Architecture | NodeJS | Date |
|:-------------|:----------|:-----------|
| `darwin-x64` | `22.14.0` | 2025-04-21 |
| `darwin-arm` | `23.8.0` | 2025-02-16 |
| `win11-x64` | `22.13.0` | 2025-01-19 |
| `darwin-arm` | `24.2.0` | 2025-06-18 |
| `win11-x64` | `24.2.0` | 2025-06-17 |
| `win11-arm` | `22.14.0` | 2025-02-23 |
| `linux-x64` | `22.12.0` | 2025-01-02 |
| `linux-x64` | `24.2.0` | 2025-06-16 |
| `linux-arm` | `22.13.0` | 2025-02-16 |
:::

@ -80,10 +80,10 @@ This demo was last tested in the following deployments:
| Architecture | BunJS | Date |
|:-------------|:---------|:-----------|
| `darwin-x64` | `1.2.10` | 2025-04-21 |
| `darwin-arm` | `1.2.8` | 2025-04-03 |
| `darwin-arm` | `1.2.16` | 2025-06-18 |
| `win11-x64` | `1.2.13` | 2025-05-07 |
| `win11-arm` | `1.2.3` | 2025-02-23 |
| `linux-x64` | `1.1.43` | 2025-01-10 |
| `linux-x64` | `1.2.16` | 2025-06-16 |
| `linux-arm` | `1.2.2` | 2025-02-16 |
:::

@ -103,10 +103,10 @@ This demo was last tested in the following deployments:
| Architecture | Deno | Date |
|:-------------|:---------|:-----------|
| `darwin-x64` | `2.2.11` | 2025-04-21 |
| `darwin-arm` | `2.1.10` | 2025-02-13 |
| `win11-x64` | `2.1.6` | 2025-01-19 |
| `darwin-arm` | `2.3.6` | 2025-06-18 |
| `win11-x64` | `2.3.6` | 2025-06-17 |
| `win11-arm` | `2.2.1` | 2025-02-23 |
| `linux-x64` | `2.1.4` | 2025-01-02 |
| `linux-x64` | `2.3.6` | 2025-06-16 |
| `linux-arm` | `2.1.10` | 2025-02-15 |
:::

@ -41,7 +41,7 @@ This demo was tested in the following deployments:
|:---------------|:-------------|:-----------|:-----------|
| macOS 15.3 | `darwin-x64` | 16.95.4 | 2025-04-17 |
| macOS 14.5 | `darwin-arm` | 16.96.1 | 2025-04-24 |
| Windows 11 | `win11-x64` | 365 (2501) | 2025-01-19 |
| Windows 11 | `win11-x64` | 365 (2506) | 2025-06-17 |
| Windows 11 | `win11-arm` | 365 (2503) | 2025-04-24 |
:::

@ -149,7 +149,7 @@ This demo was tested in the following deployments:
| `13.7.5` | `darwin-x64` | macOS 15.3.2 | `clang 16.0.0` | 2025-03-31 |
| `13.5.92` | `darwin-arm` | macOS 14.5 | `clang 16.0.0` | 2025-02-15 |
| `13.8.124` | `win11-x64` | Windows 11 | `CL 19.43.34810` | 2025-05-11 |
| `12.7.130` | `linux-x64` | HoloOS 3.6.20 | `gcc 13.2.1` | 2025-01-02 |
| `13.5.92` | `linux-x64` | Ubuntu 24.04 | `gcc 13.3.0` | 2025-06-16 |
| `13.5.92` | `linux-arm` | Debian 12 | `gcc 12.2.0` | 2025-02-15 |
:::
@ -525,6 +525,18 @@ ninja -C out.gn/arm64.release.sample v8_monolith
```bash
tools/dev/v8gen.py x64.release.sample
```
Append the following lines to `out.gn/x64.release.sample/args.gn`:
```text title="out.gn/x64.release.sample/args.gn (add to file)"
is_clang = false
treat_warnings_as_errors = false
```
Run the build:
```bash
ninja -C out.gn/x64.release.sample v8_monolith
```
@ -1091,7 +1103,7 @@ This demo was last tested in the following deployments:
| `darwin-x64` | `136.0.0` | 2025-04-21 |
| `darwin-arm` | `134.3.0` | 2025-02-13 |
| `win11-x64` | `137.1.0` | 2025-05-11 |
| `linux-x64` | `130.0.7` | 2025-01-09 |
| `linux-x64` | `137.2.0` | 2025-06-16 |
| `linux-arm` | `134.4.0` | 2025-02-15 |
:::
@ -1422,7 +1434,7 @@ This demo was last tested in the following deployments:
| `darwin-arm` | `13.3.415.23` | 2025-03-31 |
| `win11-x64` | `13.3.415.23` | 2025-05-11 |
| `win11-arm` | `12.3.219.12` | 2025-02-23 |
| `linux-x64` | `12.3.219.12` | 2025-01-10 |
| `linux-x64` | `12.3.219.12` | 2025-06-16 |
| `linux-arm` | `12.3.219.12` | 2025-02-16 |
:::
@ -1466,7 +1478,7 @@ Click "OK" in each window (3 windows) and restart your computer.
<details>
<summary><b>Installation Notes</b> (click to show)</summary>
For macOS x64 and ARM64, install the `dotnet-sdk` Cask with Homebrew:
For macOS x64 and ARM64, the `dotnet-sdk` cask can be installed with Homebrew:
```bash
brew install --cask dotnet-sdk
@ -1559,7 +1571,7 @@ var xlsb = (ITypedArray<byte>)engine.Evaluate("XLSX.write(wb, {bookType: 'xlsb',
File.WriteAllBytes("SheetJSClearScript.xlsb", xlsb.ToArray());
```
After saving, run the program and pass the test file name as an argument:
7) Run the program, passing the test file name as an argument:
```bash
dotnet run pres.xlsx
@ -1640,6 +1652,7 @@ This demo was last tested in the following deployments:
| `darwin-x64` | `13.1.201.22` | `3.13.1` | 2025-03-31 |
| `darwin-arm` | `13.1.201.22` | `3.13.2` | 2025-04-24 |
| `win11-x64` | `13.1.201.22` | `3.11.9` | 2025-04-28 |
| `linux-x64` | `13.1.201.22` | `3.12.3` | 2025-06-16 |
:::
@ -1671,7 +1684,7 @@ download and install version `13.0.245.16` for Python `3.13` on `darwin-arm`:
```bash
curl -LO https://github.com/cloudflare/stpyv8/releases/download/v13.1.201.22/stpyv8-13.1.201.22-cp313-cp313-macosx_14_0_arm64.whl
sudo python -m pip install --upgrade stpyv8-13.1.201.22-cp313-cp313-macosx_14_0_arm64.whl --break-system-packages
sudo python -m pip install --break-system-packages --upgrade stpyv8-13.1.201.22-cp313-cp313-macosx_14_0_arm64.whl
```
:::
@ -1751,7 +1764,7 @@ This demo was last tested in the following deployments:
| `darwin-x64` | `13.5.212.10` | `136.0.0` | 2025-04-21 |
| `darwin-arm` | `13.5.212.10` | `136.0.0` | 2025-04-24 |
| `win11-x64` | `13.5.212.10` | `136.0.0` | 2025-05-11 |
| `linux-x64` | `12.6.228.3` | `0.92.0` | 2025-01-02 |
| `linux-x64` | `13.5.212.10` | `136.0.0` | 2025-06-16 |
| `linux-arm` | `13.4.114.9` | `134.4.0` | 2025-02-15 |
:::

@ -167,7 +167,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | `4.2.0` | 2025-02-13 |
| `win11-x64` | `4.2.2` | 2026-04-28 |
| `win11-arm` | `4.2.0` | 2025-02-23 |
| `linux-x64` | `4.1.0` | 2025-01-09 |
| `linux-x64` | `4.2.2` | 2025-06-16 |
| `linux-arm` | `4.2.0` | 2025-02-15 |
:::

@ -106,10 +106,10 @@ This demo was tested in the following deployments:
| Architecture | Git Commit | Go version | Date |
|:-------------|:-----------|:-----------|:-----------|
| `darwin-x64` | `bcd7cc6` | `1.24.1` | 2025-03-31 |
| `darwin-arm` | `5ef83b8` | `1.24.0` | 2025-02-13 |
| `darwin-arm` | `cb187b0` | `1.24.0` | 2025-06-18 |
| `win11-x64` | `bcd7cc6` | `1.24.2` | 2025-04-28 |
| `win11-arm` | `5ef83b8` | `1.24.0` | 2025-02-23 |
| `linux-x64` | `79f3a7e` | `1.22.0` | 2025-01-02 |
| `linux-x64` | `cb187b0` | `1.22.2` | 2025-06-16 |
| `linux-arm` | `5ef83b8` | `1.19.8` | 2025-02-15 |
At the time of writing, Goja did not have proper version numbers. Versions are

@ -267,7 +267,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | QuickJS | `3306254` | 2025-04-24 |
| `win11-x64` | QuickJS-NG | `865ba1f` | 2025-04-18 |
| `win11-arm` | QuickJS-NG | `865ba1f` | 2025-04-18 |
| `linux-x64` | QuickJS | `6e2e68f` | 2025-01-09 |
| `linux-x64` | QuickJS | `3306254` | 2025-06-18 |
| `linux-arm` | QuickJS | `6e2e68f` | 2025-02-15 |
When the demo was tested, `0d7aaed` was the HEAD commit on the `master` branch.

@ -133,10 +133,10 @@ This demo was tested in the following deployments:
| Architecture | Git Commit | Date |
|:-------------|:-----------|:-----------|
| `darwin-x64` | `36becec` | 2025-03-31 |
| `darwin-arm` | `e26c81f` | 2025-01-13 |
| `darwin-arm` | `36becec` | 2025-06-20 |
| `win11-x64` | `36becec` | 2025-04-28 |
| `win11-arm` | `e26c81f` | 2025-02-23 |
| `linux-x64` | `e26c81f` | 2025-01-09 |
| `linux-x64` | `36becec` | 2025-06-18 |
:::
@ -152,8 +152,17 @@ brew install icu4c cmake
</TabItem>
<TabItem value="darwin-arm" label="ARM64 Mac">
:::caution pass
When this demo was last tested, the Homebrew version of `cmake` did not support
the project. Cmake version 3 should be installed. Binary releases can be found
[at the Cmake project website](https://cmake.org/) or installed using Homebrew
with third-party formulae.
:::
```bash
brew install icu4c cmake
brew install icu4c botantony/cmake3/cmake3
```
</TabItem>
@ -163,6 +172,12 @@ On Arch Linux / HoloOS:
```bash
sudo pacman -S cmake clang
```
On Debian / Ubuntu:
```bash
sudo apt-get install cmake clang
```
</TabItem>
@ -276,12 +291,14 @@ When the demo was last tested, ChakraCore JIT was not supported.
```bash
cd ChakraCore
./build.sh --static --icu=/usr/local/opt/icu4c/include --test-build -j=8 --no-jit
export PATH="$(brew --prefix cmake3)/bin:${PATH}"
./build.sh --static --icu=$(brew --prefix)/opt/icu4c/include --test-build -j=8 --no-jit
cd ..
```
:::
:::note pass
:::caution Troubleshooting
In some test runs, the build failed with the message:
@ -298,9 +315,7 @@ ln -s /opt/homebrew/opt/icu4c usr/local/opt/icu4c
cd ..
```
:::
:::caution pass
---
In some test runs, compilation failed with `operator` errors:
@ -347,6 +362,25 @@ index 5a3a099bc..e05a7390f 100644
#endif
```
---
In some test runs, compilation failed with C++17 errors:
```
/opt/homebrew/opt/icu4c/include/unicode/char16ptr.h:271:38: error: no template named 'enable_if_t' in namespace 'std'
271 | template<typename T, typename = std::enable_if_t<std::is_same_v<T, UChar>>>
| ~~~~~^
```
ChakraCore can be compiled without ICU support:
```bash
cd ChakraCore
export PATH="$(brew --prefix cmake3)/bin:${PATH}"
./build.sh --static --no-icu --test-build -j=8 --no-jit
cd ..
```
:::
</TabItem>
@ -575,7 +609,7 @@ If successful, the program will print the contents of the first sheet as CSV.
:::note Tested Deployments
This demo was last tested on 2025-04-28 against `ch` commit `36becec`.
This demo was last tested on 2025-06-20 against `ch` commit `36becec`.
:::

@ -129,7 +129,7 @@ This demo was tested in the following deployments:
|:-------------|:--------|:-----------|
| `darwin-x64` | `0.066` | 2025-03-31 |
| `darwin-arm` | `0.066` | 2025-02-13 |
| `linux-x64` | `0.066` | 2025-01-10 |
| `linux-x64` | `0.066` | 2025-06-16 |
| `linux-arm` | `0.066` | 2025-02-15 |
:::

@ -326,7 +326,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | `1.3.5` | 2025-02-13 |
| `win11-x64` | `1.3.6` | 2025-04-23 |
| `win11-arm` | `1.3.5` | 2025-02-23 |
| `linux-x64` | `1.3.5` | 2025-01-09 |
| `linux-x64` | `1.3.6` | 2025-06-16 |
| `linux-arm` | `1.3.5` | 2025-02-15 |
:::

@ -180,7 +180,7 @@ This demo was tested in the following deployments:
| `darwin-arm` | `3.2.9` | 2025-03-30 |
| `win11-x64` | `3.2.9` | 2025-04-23 |
| `win11-arm` | `3.2.9` | 2025-02-23 |
| `linux-x64` | `3.2.8` | 2025-01-10 |
| `linux-x64` | `3.2.9` | 2025-06-16 |
| `linux-arm` | `3.2.9` | 2025-02-15 |
:::

@ -151,7 +151,7 @@ function ConcatFormula(props) {
/* Process ArrayBuffer */
const process_ab = (ab) => {
const wb = XLSX.read(ab, {cellFormula: true, sheetStubs: true});
const wb = XLSX.read(ab, {cellFormula: true, sheetStubs: true, xlfn: true});
setWS(wb.Sheets[wb.SheetNames[0]]);
};

@ -9,7 +9,8 @@ let s = 0, spin = ['\\', '|', '/', '-'];
setInterval(() => { process.stderr.write(spin[s = ++s % spin.length] + '\u001b[0G'); }, 100).unref();
process.on('exit', function() { process.stderr.write('\u001b[2K'); });
const model = "llama3-chatqa:8b-v1.5-q8_0";
// const model = "llama3-chatqa:8b-v1.5-q8_0";
const model = "phi4:14b";
console.log(`Using model ${model}`);

@ -1,8 +1,6 @@
#!/bin/bash
# https://docs.sheetjs.com/docs/demos/frontend/bundler/browserify
# requires global puppeteer and express
# sudo npm i -g puppeteer express@4
cd /tmp
rm -rf sheetjs-browserify-tests
mkdir sheetjs-browserify-tests
@ -13,7 +11,7 @@ mkdir sheetjs-browserify-$n
cd sheetjs-browserify-$n
npm init -y
npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz puppeteer
npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz puppeteer express@4
cat >index.js <<EOF
const { utils, version, writeFileXLSX } = require('xlsx');
@ -53,8 +51,7 @@ document.getElementById("xport").addEventListener("click", function() {
worksheet["!cols"] = [ { wch: max_width } ];
/* create an XLSX file and try to save to Presidents.xlsx */
//writeFileXLSX(workbook, "Presidents.xlsx");
console.log(utils.sheet_to_csv(worksheet));
writeFileXLSX(workbook, "Presidents.xlsx");
});
});
EOF
@ -86,6 +83,11 @@ app.listen(7262, async() => {
const page = await browser.newPage();
page.on("console", msg => console.log("PAGE LOG:", msg.text()));
await page.setViewport({width: 1920, height: 1080});
const client = await page.target().createCDPSession();
await client.send('Browser.setDownloadBehavior', {
behavior: 'allow',
downloadPath: require("path").resolve('./')
});
await page.goto('http://localhost:7262/');
await page.click("#xport");
await new Promise((res,rej) => setTimeout(res, 1000));
@ -95,6 +97,7 @@ app.listen(7262, async() => {
EOF
node test.js
npx -y xlsx-cli Presidents.xlsx | head -n 3
cd -
done

105
tests/bundler/swcpack.sh Executable file

@ -0,0 +1,105 @@
#!/bin/bash
# https://docs.sheetjs.com/docs/demos/frontend/bundler/swcpack
cd /tmp
rm -rf sheetjs-spack
mkdir sheetjs-spack
cd sheetjs-spack
npm init -y
npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz regenerator-runtime @swc/cli @swc/core
npm ls | grep core
cat >index.js <<EOF
import { utils, version, writeFileXLSX } from 'xlsx';
document.getElementById("xport").addEventListener("click", async() => {
/* fetch JSON data and parse */
const url = "https://docs.sheetjs.com/executive.json";
const raw_data = await (await fetch(url)).json();
/* filter for the Presidents */
const prez = raw_data.filter(row => row.terms.some(term => term.type === "prez"));
/* sort by first presidential term */
prez.forEach(row => row.start = row.terms.find(term => term.type === "prez").start);
prez.sort((l,r) => l.start.localeCompare(r.start));
/* flatten objects */
const rows = prez.map(row => ({
name: row.name.first + " " + row.name.last,
birthday: row.bio.birthday
}));
/* generate worksheet and workbook */
const worksheet = utils.json_to_sheet(rows);
const workbook = utils.book_new();
utils.book_append_sheet(workbook, worksheet, "Dates");
/* fix headers */
utils.sheet_add_aoa(worksheet, [["Name", "Birthday"]], { origin: "A1" });
/* calculate column width */
const max_width = rows.reduce((w, r) => Math.max(w, r.name.length), 10);
worksheet["!cols"] = [ { wch: max_width } ];
/* create an XLSX file and try to save to Presidents.xlsx */
writeFileXLSX(workbook, "Presidents.xlsx");
});
EOF
cat >spack.config.js <<EOF
module.exports = ({
entry: {
'web': __dirname + '/index.js',
},
output: {
path: __dirname + '/lib'
},
module: {},
});
EOF
npx spack
cat >index.html <<EOF
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<h1>SheetJS Presidents Demo</h1>
<button id="xport">Click here to export</button>
<script src="./lib/web.js"></script>
</body>
</html>
EOF
npm i --save puppeteer express@4
cat >test.js <<EOF
const puppeteer = require('puppeteer');
const express = require('express');
const app = express();
app.use(express.static('./'));
app.listen(7262, async() => {
await new Promise((res,rej) => setTimeout(res, 1000));
const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on("console", msg => console.log("PAGE LOG:", msg.text()));
await page.setViewport({width: 1920, height: 1080});
const client = await page.target().createCDPSession();
await client.send('Browser.setDownloadBehavior', {
behavior: 'allow',
downloadPath: require("path").resolve('./')
});
await page.goto('http://localhost:7262/');
await page.click("#xport");
await new Promise((res,rej) => setTimeout(res, 1000));
await browser.close();
process.exit();
});
EOF
node test.js
npx -y xlsx-cli Presidents.xlsx | head -n 3
cd -

@ -11,8 +11,8 @@ curl -o xlsx-cli.js https://docs.sheetjs.com/cli/xlsx-cli.js
npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz exit-on-epipe commander@2
## NOTE: these steps are for darwin-x64
## NOTE: these steps are for darwin-arm
npx -y boxednode@2.4.4 -s xlsx-cli.js -t xlsx-cli
npx -y boxednode@2.4.4 -s xlsx-cli.js -t xlsx-cli -n 23.11.0
./xlsx-cli pres.numbers

@ -50,7 +50,7 @@ node --experimental-sea-config sheet2csv.json
cp `which node` sheet2csv
## NOTE: codesign required for macOS
## NOTE: codesign required for macOS
command -v codesign
has_cs=$?

@ -11,8 +11,6 @@ curl -o xlsx-cli.js https://docs.sheetjs.com/cli/xlsx-cli.js
npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz exit-on-epipe commander@2
## NOTE: must downgrade to node 18
npx -y pkg -t 'node18-win-arm64,node18-linux-arm64,node18-macos-arm64' xlsx-cli.js
## NOTE: these steps are for darwin