This commit is contained in:
SheetJS 2024-04-04 22:07:37 -04:00
parent ad27e3a947
commit ecca85c9dc
13 changed files with 45 additions and 96 deletions

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

@ -1,4 +1,5 @@
---
title: Export Tutorial
pagination_prev: getting-started/installation/index
pagination_next: getting-started/roadmap
sidebar_position: 2
@ -9,8 +10,6 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
# Export Tutorial
Many modern data sources provide an API to download data in JSON format. Many
users prefer to work in spreadsheet software. SheetJS libraries help bridge the
gap by translating programmer-friendly JSON to user-friendly workbooks.
@ -942,10 +941,10 @@ current Java releases.
Create a new project by running the following commands in the Terminal:
<CodeBlock language="bash">{`\
npx -y react-native@0.72.4 init SheetJSPres --version="0.72.4"
npx -y react-native@0.73.6 init SheetJSPres --version="0.73.6"
cd SheetJSPres
\n\
npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz react-native-blob-util@0.17.1`}
npm i -S https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz react-native-blob-util@0.19.8`}
</CodeBlock>
Save the following to `App.tsx` in the project:
@ -1025,7 +1024,7 @@ export default App;
:::note pass
The Android demo has been tested in Windows 10 and in macOS.
The Android demo has been tested in Windows, Arch Linux (Steam Deck) and macOS.
:::

@ -910,6 +910,7 @@ This demo was tested in the following environments:
| Android 34 | Pixel 3a | `0.73.6` | `darwin-x64` | 2024-03-31 |
| iOS 17.4 | iPhone 15 Pro Max | `0.73.6` | `darwin-x64` | 2024-03-31 |
| Android 34 | Pixel 3a | `0.73.6` | `win10-x64` | 2024-03-31 |
| Android 34 | Pixel 3a | `0.73.6` | `linux-x64` | 2024-03-31 |
**Real Devices**

@ -672,7 +672,7 @@ npx -y react-native-macos-init --no-telemetry
In the most recent x64 test, the build failed due to `visionos` errors:
```
[!] Failed to load 'React-RCTFabric' podspec:
[!] Failed to load 'React-RCTFabric' podspec:
[!] Invalid `React-RCTFabric.podspec` file: undefined method `visionos' for #<Pod::Specification name="React-RCTFabric">.
```

@ -40,7 +40,7 @@ This demo was verified in the following deployments:
| App | Platform | Date |
|:----------|:-------------|:-----------|
| Photoshop | ExtendScript | 2024-03-12 |
| InDesign | ExtendScript | 2024-03-12 |
| InDesign | ExtendScript | 2024-04-04 |
| InDesign | CEP | 2024-03-12 |
| InDesign | UXP | 2024-03-11 |

@ -187,7 +187,7 @@ npm install
4) Install the SheetJS dependency and start the dev server:
<CodeBlock language="bash">{`\
curl -o .\public\img\logo-48.png https://docs.sheetjs.com/logo.png
curl -o ./public/img/logo-48.png https://docs.sheetjs.com/logo.png
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz
npm run dev`}
</CodeBlock>

@ -130,7 +130,7 @@ This demo was tested in the following deployments:
| Architecture | Version | Date |
|:-------------|:--------|:-----------|
| `darwin-x64` | `2.7.0` | 2024-03-15 |
| `darwin-x64` | `2.7.0` | 2024-04-04 |
| `darwin-arm` | `2.7.0` | 2023-10-18 |
| `win10-x64` | `2.7.0` | 2024-03-27 |
| `win11-arm` | `2.7.0` | 2023-12-01 |

@ -863,7 +863,7 @@ This demo was last tested in the following deployments:
| Architecture | V8 Crate | Date |
|:-------------|:---------|:-----------|
| `darwin-x64` | `0.88.0` | 2024-03-15 |
| `darwin-x64` | `0.89.0` | 2024-04-04 |
| `darwin-arm` | `0.82.0` | 2023-12-01 |
| `win10-x64` | `0.89.0` | 2024-03-24 |
| `linux-x64` | `0.89.0` | 2024-03-21 |

@ -29,6 +29,7 @@ This demo was tested in the following deployments:
| OpenJDK | Rhino | Date |
|:--------|:---------|:-----------|
| 22 | `1.7.14` | 2024-04-04 |
| 21.0.1 | `1.7.14` | 2023-12-05 |
| 17.0.10 | `1.7.14` | 2024-03-25 |
| 1.8.0 | `1.7.14` | 2023-12-05 |

@ -133,7 +133,7 @@ This demo was tested in the following environments:
| Architecture | Swift | Date |
|:-------------|:--------|:-----------|
| `darwin-x64` | `5.10` | 2024-03-15 |
| `darwin-x64` | `5.10` | 2024-04-04 |
| `darwin-arm` | `5.9.2` | 2024-02-21 |
:::

@ -39,7 +39,7 @@ These instructions were tested on the following platforms:
| Platform | Architecture | Test Date |
|:------------------------------|:-------------|:-----------|
| Linux (Steam Deck Holo x64) | `linux-x64` | 2024-03-21 |
| Linux (Steam Deck Holo x64) | `linux-x64` | 2024-04-01 |
| Linux (Ubuntu 18 AArch64) | `linux-arm` | 2023-12-01 |
| MacOS 14.4 (x64) | `darwin-x64` | 2024-03-15 |
| MacOS 14.1.2 (ARM64) | `darwin-arm` | 2023-12-01 |
@ -113,75 +113,23 @@ success with Windows on ARM running on computers with the M2 Max CPU.
</details>
B) Install mercurial and subversion from within WSL:
B) Install NVM within WSL:
```bash
sudo apt-get update
sudo apt-get install mercurial subversion
sudo apt-get install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
```
:::note pass
C) Exit the WSL session and start a new session
In some Windows 10 runs, `mercurial` and `subversion` were not available in the
default Ubuntu distro. A separate repository is available:
D) Install NodeJS 16 using NVM:
```bash
# Install support programs for the build and test commands
sudo add-apt-repository ppa:mercurial-ppa/releases
sudo apt-get update
sudo apt-get install mercurial subversion
sudo add-apt-repository --remove ppa:mercurial-ppa/releases
nvm install 16
nvm use 16
```
If the first command displays an error involving a missing release file, remove
the repo before proceeding:
```bash
sudo add-apt-repository --remove ppa:mercurial-ppa/releases
```
:::
C) Install NodeJS within WSL:
:::info pass
In the most recent test, the script showed a deprecation notice.
**The script worked as expected.**
The official workaround does not currently work with WSL. When the issues are
resolved, the instructions will be updated.
:::
```bash
# Install bootstrap NodeJS and NPM within the WSL
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
```
D) Exit the WSL session and start a new session
E) Install the `n` package and switch NodeJS versions:
```bash
# Switch to `n`-managed NodeJS
sudo npm i -g n
sudo n 16
```
:::note pass
If `npm` is missing, it can be installed with
```bash
sudo apt-get install -y npm
```
:::
F) Clone the [`js-crc32` repo](https://git.sheetjs.com/sheetjs/js-crc32)
E) Clone the [`js-crc32` repo](https://git.sheetjs.com/sheetjs/js-crc32)
```bash
git clone https://git.sheetjs.com/sheetjs/js-crc32
@ -220,7 +168,7 @@ chmod +x compile-git-with-openssl.sh
:::
G) Set `git` config `core.autocrlf` setting to `false`. The following commands
F) Set `git` config `core.autocrlf` setting to `false`. The following commands
should be run twice, once within PowerShell (if Git for Windows is installed)
and once within WSL bash:
@ -229,13 +177,13 @@ git config --global --add core.autocrlf false
git config --global --unset core.autocrlf true
```
H) Run `unzip`. If the program is missing, install manually:
G) Run `unzip`. If the program is missing, install manually:
```bash
sudo apt-get install -y unzip
```
I) Run `make`. If the program is missing, install manually:
H) Run `make`. If the program is missing, install manually:
```bash
sudo apt-get install -y make
@ -290,12 +238,12 @@ open node-v12.22.12.pkg
</TabItem>
<TabItem value="l" label="Linux">
A) Install `curl` and `git` using the system package manager. On Debian and
Ubuntu systems, `apt-get` installs packages:
A) Install `curl`, `git`, and `build-essential` using the system package
manager. On Debian and Ubuntu systems, `apt-get` installs packages:
```bash
sudo apt update
sudo apt-get install curl git
sudo apt-get install curl git build-essential
```
Other Linux distributions may use other package managers.
@ -354,7 +302,7 @@ This is *not required* for building or testing the library.
</details>
B) After installing mercurial and subversion, install NodeJS.
B) Install NodeJS.
:::note pass
@ -519,28 +467,28 @@ echo 'export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"' >> ~/.profile
### Reproduce official builds
5) Run `git log` and search for the commit that matches a particular release
version. For example, version `0.20.1` can be found with:
version. For example, version `0.20.2` can be found with:
```bash
git log | grep -B4 "version bump 0.20.1"
git log | grep -B4 "version bump 0.20.2"
```
The output should look like:
```bash
$ git log | grep -B4 "version bump 0.20.1"
$ git log | grep -B4 "version bump 0.20.2"
# highlight-next-line
commit 29d46c07a895bdfd948d15b5115529ae697ccb48 <-- this is the commit hash
commit a0bed2a97dcb1e3b76049be91abf3747f333c975 <-- this is the commit hash
Author: SheetJS <dev@sheetjs.com>
Date: Tue Dec 5 03:19:42 2023 -0500
Date: Thu Apr 4 21:20:28 2024 -0400
version bump 0.20.1
version bump 0.20.2
```
6) Switch to that commit:
```bash
git checkout 29d46c07a895bdfd948d15b5115529ae697ccb48
git checkout a0bed2a97dcb1e3b76049be91abf3747f333c975
```
7) Run the full build sequence
@ -587,36 +535,36 @@ The checksum for the CDN version can be computed with:
<TabItem value="wsl" label="Windows WSL">
```bash
curl -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5sum -
curl -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5sum -
```
</TabItem>
<TabItem value="osx" label="MacOS">
```bash
curl -k -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5
curl -k -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5
```
</TabItem>
<TabItem value="l" label="Linux">
```bash
curl -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5sum -
curl -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5sum -
```
</TabItem>
</Tabs>
When the demo was last tested on macOS, against version `0.20.1`:
When the demo was last tested on macOS, against version `0.20.2`:
>
```bash
$ md5 dist/xlsx.full.min.js
# highlight-next-line
MD5 (dist/xlsx.full.min.js) = c5db4b1d2a1985a4ebfbaa500243f593
$ curl -k -L https://cdn.sheetjs.com/xlsx-0.20.1/package/dist/xlsx.full.min.js | md5
MD5 (dist/xlsx.full.min.js) = 50d3c495c9358a6196878296d2644eab
$ curl -k -L https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | md5
# highlight-next-line
c5db4b1d2a1985a4ebfbaa500243f593
50d3c495c9358a6196878296d2644eab
```
The two hashes should match.

@ -28,7 +28,7 @@
"react-dom": "17.0.2",
"rehype-katex": "4.0.0",
"remark-math": "3.0.1",
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz"
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.4.1"

@ -1,3 +1,3 @@
//const version = "0.20.1";
//const version = "0.20.2";
import { version } from "xlsx";
export default version;