Windows x64 migration from Win10 to Win11
This commit is contained in:
parent
e9f8e08e13
commit
4c2fe5f75f
@ -123,9 +123,12 @@ This demo was last tested in the following deployments:
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `1.1.39` | 2024-12-17 |
|
||||
| `darwin-arm` | `1.1.10` | 2024-09-22 |
|
||||
| `win10-x64` | `1.1.4` | 2024-04-19 |
|
||||
| `win11-x64` | `1.1.22` | 2024-08-11 |
|
||||
| `linux-x64` | `1.1.4` | 2024-04-25 |
|
||||
| `win11-arm` | `1.1.40` | 2024-12-19 |
|
||||
| `linux-x64` | `1.1.40` | 2024-12-19 |
|
||||
| `linux-arm` | `1.1.40` | 2024-12-19 |
|
||||
|
||||
BunJS on Windows on ARM uses the X64 compatibility layer.
|
||||
|
||||
:::
|
||||
|
||||
@ -176,6 +179,22 @@ VSCodium will automatically re-save the file.
|
||||
bun install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
|
||||
</CodeBlock>
|
||||
|
||||
:::caution pass
|
||||
|
||||
In some test runs, the command failed with a module resolution error:
|
||||
|
||||
<CodeBlock>{`\
|
||||
error: https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz failed to resolve`}
|
||||
</CodeBlock>
|
||||
|
||||
The workaround is to prepend `xlsx@` to the URL:
|
||||
|
||||
<CodeBlock language="bash">{`\
|
||||
bun install xlsx@https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
|
||||
</CodeBlock>
|
||||
|
||||
:::
|
||||
|
||||
2) Save the following script to `SheetJSBun.js`:
|
||||
|
||||
```js title="SheetJSBun.js"
|
||||
@ -256,4 +275,9 @@ bun app.js
|
||||
```
|
||||
|
||||
If the script succeeded, the file `Presidents.xlsx` will be created. That file
|
||||
can be opened in a spreadsheet editor.
|
||||
can be opened in a spreadsheet editor. If a spreadsheet editor is unavailable,
|
||||
the contents can be displayed using the `xlsx-cli` tool:
|
||||
|
||||
```bash
|
||||
bunx xlsx-cli Presidents.xlsx
|
||||
```
|
||||
|
@ -33,13 +33,13 @@ SheetJS Loader to answer questions based on data from a XLS workbook.
|
||||
|
||||
This demo was tested in the following configurations:
|
||||
|
||||
| Platform | Architecture | Date |
|
||||
|:--------------------------------------------------------------|:-------------|:-----------|
|
||||
| NVIDIA RTX 4090 (24 GB VRAM) + Ryzen Z1 Extreme (24 GB RAM) | `win11-x64` | 2024-11-09 |
|
||||
| NVIDIA RTX 4080 SUPER (16 GB VRAM) + i9-10910 (128 GB RAM) | `win10-x64` | 2024-08-09 |
|
||||
| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-09-21 |
|
||||
| AMD RX 6800 XT (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-10-07 |
|
||||
| Apple M2 Max 12-Core CPU + 30-Core GPU (32 GB unified memory) | `darwin-arm` | 2024-11-04 |
|
||||
| Platform | Architecture | Date |
|
||||
|:------------------------------------------------------------------|:-------------|:-----------|
|
||||
| NVIDIA RTX 4090 (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-12-20 |
|
||||
| NVIDIA RTX 4080 SUPER (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-12-19 |
|
||||
| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-09-21 |
|
||||
| AMD RX 6800 XT (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2024-10-07 |
|
||||
| Apple M2 Max 12-Core CPU + 30-Core GPU (32 GB unified memory) | `darwin-arm` | 2024-11-04 |
|
||||
|
||||
SheetJS users have verified this demo in other configurations:
|
||||
|
||||
|
@ -22,7 +22,12 @@ The ["Complete Example"](#complete-example) section includes a complete server.
|
||||
|
||||
:::note Tested Deployments
|
||||
|
||||
This demo was last tested on 2024 March 11 against Drash 2.8.1 and Deno 1.41.2.
|
||||
This demo was tested in the following deployments:
|
||||
|
||||
| Drash | Deno | Date |
|
||||
|:--------|:-------|:-----------|
|
||||
| `2.8.1` | 1.44.1 | 2024-12-19 |
|
||||
| `2.8.1` | 2.1.4 | 2024-12-19 |
|
||||
|
||||
:::
|
||||
|
||||
@ -123,6 +128,16 @@ curl -LO https://docs.sheetjs.com/drash/SheetJSDrash.ts
|
||||
deno run --allow-net SheetJSDrash.ts
|
||||
```
|
||||
|
||||
:::caution pass
|
||||
|
||||
Deno 2 requires the `--allow-import` entitlement:
|
||||
|
||||
```bash
|
||||
deno run --allow-net --allow-write --allow-import SheetJSDenoDOM.ts
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
3) Download the test file https://docs.sheetjs.com/pres.numbers
|
||||
|
||||
4) Open `http://localhost:7262/` in your browser.
|
||||
|
@ -21,11 +21,11 @@ The ["Complete Example"](#complete-example) section includes a complete server.
|
||||
|
||||
:::note Tested Deployments
|
||||
|
||||
This demo was last tested in the following deployments:
|
||||
This demo was tested in the following deployments:
|
||||
|
||||
| Platform | HonoJS | Date |
|
||||
|:---------------|:--------|:-----------|
|
||||
| BunJS `1.1.21` | `4.5.1` | 2024-07-27 |
|
||||
| Platform | HonoJS | Date |
|
||||
|:---------------|:---------|:-----------|
|
||||
| BunJS `1.1.40` | `4.6.14` | 2024-12-19 |
|
||||
|
||||
:::
|
||||
|
||||
|
@ -8,7 +8,8 @@ pagination_next: demos/net/email/index
|
||||
import current from '/version.js';
|
||||
import CodeBlock from '@theme/CodeBlock';
|
||||
|
||||
[Elysia](https://elysiajs.com/) is a BunJS server-side framework.
|
||||
[ElysiaJS](https://elysiajs.com/) is a server-side framework for
|
||||
[BunJS](/docs/getting-started/installation/bun).
|
||||
|
||||
[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
|
||||
data from spreadsheets.
|
||||
@ -21,7 +22,12 @@ The ["Complete Example"](#complete-example) section includes a complete server.
|
||||
|
||||
:::note Tested Deployments
|
||||
|
||||
This demo was last tested on 2024 March 11 with ElysiaJS 0.8.17 and BunJS 1.0.30.
|
||||
This demo was tested in the following deployments:
|
||||
|
||||
| Platform | ElysiaJS | Date |
|
||||
|:---------------|:---------|:-----------|
|
||||
| BunJS `1.1.40` | `0.8.17` | 2024-12-19 |
|
||||
| BunJS `1.1.40` | `1.1.26` | 2024-12-19 |
|
||||
|
||||
:::
|
||||
|
||||
@ -112,6 +118,16 @@ bun create elysia sheetjs-elysia
|
||||
cd sheetjs-elysia
|
||||
```
|
||||
|
||||
:::note pass
|
||||
|
||||
The `bun install` command can install specific versions of ElysiaJS:
|
||||
|
||||
```bash
|
||||
bun install elysia@0.8.17
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
2) Install the [SheetJS BunJS module](/docs/getting-started/installation/bun):
|
||||
|
||||
<CodeBlock language="bash">{`\
|
||||
@ -142,7 +158,7 @@ app.post("/", async({ body: { upload } }) => {
|
||||
upload: t.File()
|
||||
})
|
||||
});
|
||||
app.listen(3000);
|
||||
app.listen(3000, () => { console.log("SheetJS ElysiaJS server is up")});
|
||||
```
|
||||
|
||||
4) Run the server:
|
||||
@ -151,6 +167,8 @@ app.listen(3000);
|
||||
bun run src/SheetJSElysia.ts
|
||||
```
|
||||
|
||||
The script will print `SheetJS ElysiaJS server is up`.
|
||||
|
||||
5) Test POST requests using https://docs.sheetjs.com/pres.numbers . The commands
|
||||
should be run in a new terminal window:
|
||||
|
||||
|
@ -408,7 +408,6 @@ This demo was tested in the following environments:
|
||||
| Architecture | PhantomJS | Date |
|
||||
|:-------------|:----------|:-----------|
|
||||
| `darwin-x64` | `2.1.1` | 2024-12-17 |
|
||||
| `win10-x64` | `2.1.1` | 2024-03-24 |
|
||||
| `win11-x64` | `2.1.1` | 2024-05-22 |
|
||||
| `linux-x64` | `2.1.1` | 2024-04-25 |
|
||||
|
||||
|
@ -396,7 +396,7 @@ The script will create a file `SheetJSDenoDOM.xlsx` that can be opened.
|
||||
|
||||
:::caution pass
|
||||
|
||||
Deno 2 additionally requires `--allow-import`:
|
||||
Deno 2 additionally requires the `--allow-import` entitlement:
|
||||
|
||||
```bash
|
||||
deno run --allow-net --allow-write --allow-import SheetJSDenoDOM.ts
|
||||
|
@ -190,7 +190,6 @@ This demo was tested in the following environments:
|
||||
|:---------------|:-------------|:---------|:-----------|
|
||||
| macOS 14.4 | `darwin-x64` | `29.1.4` | 2024-03-15 |
|
||||
| macOS 14.5 | `darwin-arm` | `30.0.8` | 2024-05-28 |
|
||||
| Windows 10 | `win10-x64` | `31.2.0` | 2024-07-12 |
|
||||
| Windows 11 | `win11-x64` | `31.2.0` | 2024-08-18 |
|
||||
| Windows 11 | `win11-arm` | `30.0.8` | 2024-05-28 |
|
||||
| Linux (HoloOS) | `linux-x64` | `29.1.4` | 2024-03-21 |
|
||||
@ -277,7 +276,7 @@ The program will run on ARM64 Windows.
|
||||
|:-------------|:--------------------------------------------------------------|
|
||||
| `darwin-x64` |`open ./out/sheetjs-electron-darwin-x64/sheetjs-electron.app` |
|
||||
| `darwin-arm` |`open ./out/sheetjs-electron-darwin-arm64/sheetjs-electron.app`|
|
||||
| `win10-x64` |`.\out\sheetjs-electron-win32-x64\sheetjs-electron.exe` |
|
||||
| `win11-x64` |`.\out\sheetjs-electron-win32-x64\sheetjs-electron.exe` |
|
||||
| `win11-arm` |`.\out\sheetjs-electron-win32-x64\sheetjs-electron.exe` |
|
||||
| `linux-x64` |`./out/sheetjs-electron-linux-x64/sheetjs-electron` |
|
||||
| `linux-arm` |`./out/sheetjs-electron-linux-arm64/sheetjs-electron` |
|
||||
|
@ -115,7 +115,7 @@ This demo was tested in the following environments:
|
||||
|:---------------|:-------------|:---------|:-----------|:---------------------|
|
||||
| macOS 14.3.1 | `darwin-x64` | `0.85.0` | 2024-03-12 | |
|
||||
| macOS 14.5 | `darwin-arm` | `0.88.0` | 2024-05-28 | |
|
||||
| Windows 10 | `win10-x64` | `0.83.0` | 2024-03-04 | |
|
||||
| Windows 11 | `win11-x64` | `0.94.0` | 2024-12-19 | |
|
||||
| Windows 11 | `win11-arm` | `0.88.0` | 2024-05-28 | |
|
||||
| Linux (HoloOS) | `linux-x64` | `0.89.0` | 2024-07-07 | |
|
||||
| Linux (Debian) | `linux-arm` | `0.60.0` | 2024-05-23 | Unofficial build[^1] |
|
||||
@ -138,7 +138,7 @@ cd sheetjs-nwjs
|
||||
"version": "0.0.0",
|
||||
"main": "index.html",
|
||||
"dependencies": {
|
||||
"nw": "0.89.0",
|
||||
"nw": "0.94.0",
|
||||
"xlsx": "https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz"
|
||||
}
|
||||
}`}
|
||||
@ -182,15 +182,23 @@ file can be opened in Excel or another spreadsheet editor.
|
||||
5) To build a standalone app, run the builder:
|
||||
|
||||
```bash
|
||||
npx -p nw-builder nwbuild --mode=build --version=0.89.0 --glob=false --outDir=../out ./
|
||||
npx -p nw-builder@4.11.6 nwbuild --mode=build --version=0.94.0 --glob=false --outDir=../out ./
|
||||
```
|
||||
|
||||
This will generate the standalone app in the `..\out\` folder.
|
||||
|
||||
:::caution pass
|
||||
|
||||
There is a regression in `nw-builder` version `4.12.0`. In local `win11-x64`
|
||||
testing, version `4.11.6` correctly generated the standalone application.
|
||||
|
||||
:::
|
||||
|
||||
6) Launch the generated application:
|
||||
|
||||
| Architecture | Command |
|
||||
|:-------------|:--------------------------------------------------------------|
|
||||
| `linux-x64` | `../out/sheetjs-nwjs` |
|
||||
| `win11-x64` | `..\out\sheetjs-nwjs.exe` |
|
||||
|
||||
[^1]: The [`nw60-arm64_2022-01-08` release](https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/tag/nw60-arm64_2022-01-08) included an ARM64 version of `nw`.
|
@ -33,7 +33,7 @@ app to read and write workbooks. The app will look like the screenshots below:
|
||||
<th><a href="#complete-example">Linux</a></th>
|
||||
</tr></thead><tbody><tr><td>
|
||||
|
||||
![Windows screenshot](pathname:///neu/win10.png)
|
||||
![Windows screenshot](pathname:///neu/win11.png)
|
||||
|
||||
</td><td>
|
||||
|
||||
@ -194,13 +194,13 @@ This demo was tested in the following environments:
|
||||
|:---------------|:-------------|:---------|:---------|:-----------|
|
||||
| macOS 14.4 | `darwin-x64` | `5.0.0` | `5.0.1` | 2024-03-15 |
|
||||
| macOS 14.5 | `darwin-arm` | `5.1.0` | `5.1.0` | 2024-05-25 |
|
||||
| Windows 10 | `win10-x64` | `5.1.0` | `5.1.0` | 2024-03-24 |
|
||||
| Windows 11 | `win11-x64` | `5.5.0` | `5.5.0` | 2024-12-20 |
|
||||
| Windows 11 | `win11-arm` | `5.1.0` | `5.1.1` | 2024-05-28 |
|
||||
| Linux (HoloOS) | `linux-x64` | `5.0.0` | `5.0.1` | 2024-03-21 |
|
||||
| Linux (Debian) | `linux-arm` | `5.1.0` | `5.1.1` | 2024-05-28 |
|
||||
|
||||
On `win11-arm`, the Electron runner is a proper ARM64 binary but the binaries
|
||||
generated by Electron Forge are x64. The x64 binaries run in Windows on ARM.
|
||||
NeutralinoJS on Windows on ARM generates X64 binaries that run using the X64
|
||||
compatibility layer. The binaries are not native ARM64 programs!
|
||||
|
||||
:::
|
||||
|
||||
@ -414,6 +414,7 @@ Platform-specific programs will be created in the `dist` folder:
|
||||
| Platform | Path to binary |
|
||||
|:-------------|:---------------------------------------------|
|
||||
| `darwin-arm` | `./dist/sheetjs-neu/sheetjs-neu-mac_arm64` |
|
||||
| `win11-x64` | `.\dist\sheetjs-neu\sheetjs-neu-win_x64.exe` |
|
||||
| `win11-arm` | `.\dist\sheetjs-neu\sheetjs-neu-win_x64.exe` |
|
||||
| `linux-arm` | `.\dist\sheetjs-neu\sheetjs-neu-linux_arm64` |
|
||||
|
||||
|
@ -46,7 +46,6 @@ This demo was tested in the following environments:
|
||||
|
||||
| OS and Version | Architecture | RN Platform | Date |
|
||||
|:---------------|:-------------|:------------|:-----------|
|
||||
| Windows 10 | `win10-x64` | `v0.74.6` | 2024-05-28 |
|
||||
| Windows 11 | `win11-x64` | `v0.74.6` | 2024-05-28 |
|
||||
| Windows 11 | `win11-arm` | `v0.74.5` | 2024-05-25 |
|
||||
| MacOS 14.7 | `darwin-x64` | `v0.75.13` | 2024-10-26 |
|
||||
|
@ -39,7 +39,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:-------------|:----------|:----------|:-----------|
|
||||
| `darwin-x64` | `4.0.0-rc.6` | `14.15.3` | Pre-built | 2024-05-28 |
|
||||
| `darwin-arm` | `4.0.0-rc.6` | `18.20.3` | Compiled | 2024-05-25 |
|
||||
| `win10-x64` | `4.0.0-rc.4` | `14.15.3` | Pre-built | 2024-04-18 |
|
||||
| `win11-x64` | `4.0.0-rc.6` | `14.15.3` | Pre-built | 2024-12-19 |
|
||||
| `win11-arm` | `4.0.0-rc.6` | `20.10.0` | Compiled | 2024-05-28 |
|
||||
| `linux-x64` | `4.0.0-rc.4` | `14.15.3` | Pre-built | 2024-03-21 |
|
||||
| `linux-arm` | `4.0.0-rc.6` | `18.20.3` | Compiled | 2024-05-26 |
|
||||
|
@ -39,7 +39,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:--------|:---------|:-----------|
|
||||
| `darwin-x64` | `5.8.1` | `18.5.0` | 2024-05-28 |
|
||||
| `darwin-arm` | `5.8.1` | `18.5.0` | 2024-05-25 |
|
||||
| `win10-x64` | `5.8.1` | `18.5.0` | 2024-04-18 |
|
||||
| `win11-x64` | `5.8.1` | `18.5.0` | 2024-12-19 |
|
||||
| `win11-arm` | `5.8.1` | `18.5.0` | 2024-10-25 |
|
||||
| `linux-x64` | `5.8.1` | `18.5.0` | 2024-03-21 |
|
||||
| `linux-arm` | `5.8.1` | `18.5.0` | 2024-05-26 |
|
||||
|
@ -32,7 +32,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:--------|:----------|:-----------|
|
||||
| `darwin-x64` | `2.4.0` | `22.2.0` | 2024-05-28 |
|
||||
| `darwin-arm` | `2.4.3` | `22.2.0` | 2024-05-25 |
|
||||
| `win10-x64` | `2.4.2` | `16.20.2` | 2024-04-18 |
|
||||
| `win11-x64` | `2.4.4` | `16.20.2` | 2024-12-19 |
|
||||
| `linux-x64` | `2.4.0` | `21.7.1` | 2024-03-21 |
|
||||
| `linux-arm` | `2.4.3` | `20.13.1` | 2024-05-26 |
|
||||
|
||||
@ -91,7 +91,7 @@ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz exit-on-epi
|
||||
<TabItem value="unix" label="Linux/MacOS">
|
||||
|
||||
```bash
|
||||
npx boxednode@2.4.3 -s xlsx-cli.js -t xlsx-cli
|
||||
npx boxednode@2.4.4 -s xlsx-cli.js -t xlsx-cli
|
||||
```
|
||||
|
||||
:::caution pass
|
||||
@ -113,7 +113,7 @@ The `-n` flag controls the target NodeJS version. For this demo, the following
|
||||
command uses NodeJS `20.13.1`:
|
||||
|
||||
```bash
|
||||
npx boxednode@2.4.3 -s xlsx-cli.js -t xlsx-cli -n 20.13.1
|
||||
npx boxednode@2.4.4 -s xlsx-cli.js -t xlsx-cli -n 20.13.1
|
||||
```
|
||||
|
||||
:::
|
||||
@ -122,7 +122,7 @@ npx boxednode@2.4.3 -s xlsx-cli.js -t xlsx-cli -n 20.13.1
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
```bash
|
||||
npx boxednode@2.4.3 -s xlsx-cli.js -t xlsx-cli.exe -n 16.20.2
|
||||
npx boxednode@2.4.4 -s xlsx-cli.js -t xlsx-cli.exe -n 16.20.2
|
||||
```
|
||||
|
||||
:::info pass
|
||||
|
@ -160,7 +160,6 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:----------|:-----------|
|
||||
| `darwin-x64` | `22.2.0` | 2024-05-28 |
|
||||
| `darwin-arm` | `22.2.0` | 2024-05-29 |
|
||||
| `win10-x64` | `20.12.0` | 2024-03-26 |
|
||||
| `win11-x64` | `20.13.1` | 2024-05-22 |
|
||||
| `win11-arm` | `20.14.0` | 2024-06-11 |
|
||||
| `linux-x64` | `20.11.1` | 2024-03-18 |
|
||||
@ -285,7 +284,7 @@ codesign --remove-signature ./sheet2csv
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
In PowerShell, the `Get-Command` command displays the location to `node.exe`:
|
||||
|
||||
@ -344,7 +343,7 @@ codesign -s - ./sheet2csv
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
```bash
|
||||
npx -y postject --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 sheet2csv.exe NODE_SEA_BLOB sheet2csv.blob
|
||||
@ -405,7 +404,7 @@ Signature=adhoc
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
13) Validate the binary signature:
|
||||
|
||||
|
@ -80,8 +80,8 @@ This demo was last tested in the following deployments:
|
||||
| Architecture | BunJS | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `1.1.10` | 2024-05-28 |
|
||||
| `darwin-arm` | `1.1.10` | 2024-05-29 |
|
||||
| `win10-x64` | `1.1.12` | 2024-06-10 |
|
||||
| `darwin-arm` | `1.1.40` | 2024-12-19 |
|
||||
| `win11-x64` | `1.1.40` | 2024-12-19 |
|
||||
| `win11-arm` | `1.1.33` | 2024-10-25 |
|
||||
| `linux-x64` | `1.1.12` | 2024-06-09 |
|
||||
| `linux-arm` | `1.1.12` | 2024-06-10 |
|
||||
@ -114,13 +114,11 @@ bun install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`}
|
||||
|
||||
:::caution pass
|
||||
|
||||
In some test runs, the command failed with a `ENOTEMPTY` error:
|
||||
In some test runs, the command failed with a module resolution error:
|
||||
|
||||
```
|
||||
error: InstallFailed extracting tarball for https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz
|
||||
error: moving "https://cdn.sheetjs.com/xlsx-0.20.1/xlsx-0.20.1.tgz" to cache dir failed
|
||||
ENOTEMPTY: Directory not empty (NtSetInformationFile())
|
||||
```
|
||||
<CodeBlock>{`\
|
||||
error: https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz failed to resolve`}
|
||||
</CodeBlock>
|
||||
|
||||
The workaround is to prepend `xlsx@` to the URL:
|
||||
|
||||
|
@ -101,7 +101,6 @@ This demo was last tested in the following deployments:
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `1.43.6` | 2024-05-28 |
|
||||
| `darwin-arm` | `1.43.6` | 2024-05-23 |
|
||||
| `win10-x64` | `1.41.3` | 2024-03-24 |
|
||||
| `win11-x64` | `1.43.6` | 2024-05-25 |
|
||||
| `win11-arm` | `2.0.3` | 2024-10-25 |
|
||||
| `linux-x64` | `1.41.3` | 2024-03-18 |
|
||||
|
@ -30,7 +30,7 @@ This demo was tested by SheetJS users in the following deployments:
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `14.0` | 2024-06-05 |
|
||||
| `win10-x64` | `14.0` | 2024-06-05 |
|
||||
| `win11-x64` | `14.0` | 2024-12-19 |
|
||||
|
||||
:::
|
||||
|
||||
@ -186,7 +186,7 @@ This demo tests the NodeJS external engine and dedicated command line tools.
|
||||
1) Install dependencies in the Home folder (`~` or `$HOME` or `%HOMEPATH%`):
|
||||
|
||||
<CodeBlock language="bash">{`\
|
||||
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz zeromq@6.0.0-beta.19`}
|
||||
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz zeromq@6.1.2`}
|
||||
</CodeBlock>
|
||||
|
||||
2) Open a new Mathematica Notebook and register NodeJS. When the example was
|
||||
@ -221,7 +221,7 @@ The second argument to `RegisterExternalEvaluator` should be the path to the
|
||||
PowerShell window:
|
||||
|
||||
```powershell
|
||||
Get-Command node.exe
|
||||
(Get-Command node.exe).Path
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
@ -229,14 +229,16 @@ Get-Command node.exe
|
||||
|
||||
If NodeJS is registered, the value in the "Registered" column will be "True".
|
||||
|
||||
4) To determine the base folder, run `require("process").cwd()` from NodeJS:
|
||||
4) Run `require("process").cwd()` from NodeJS:
|
||||
|
||||
```mathematica
|
||||
ExternalEvaluate["NodeJS", "require('process').cwd()"]
|
||||
```
|
||||
|
||||
The result is the working directory for NodeJS scripts
|
||||
|
||||
5) Download [`pres.numbers`](https://docs.sheetjs.com/pres.numbers) and move
|
||||
the file to the base folder as shown in the previous step.
|
||||
the file to the folder from the previous result.
|
||||
|
||||
3) Copy, but do not run, the following snippet into the running notebook:
|
||||
|
||||
|
@ -55,7 +55,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:------------------|:-----------|
|
||||
| `darwin-x64` | `18.0` | 2024-04-10 |
|
||||
| `darwin-arm` | `18.5` (StataNow) | 2024-12-15 |
|
||||
| `win10-x64` | `18.0` | 2024-04-10 |
|
||||
| `win11-x64` | `18.5` (StataNow) | 2024-12-19 |
|
||||
| `win11-arm` | `18.5` (StataNow) | 2024-12-15 |
|
||||
| `linux-x64` | `18.0` | 2024-04-25 |
|
||||
|
||||
|
@ -37,7 +37,7 @@ This demo was tested by SheetJS users in the following deployments:
|
||||
| Architecture | Version | Date |
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | 2024 | 2024-04-25 |
|
||||
| `win10-x64` | 2024 | 2024-04-25 |
|
||||
| `win11-x64` | 2024 | 2024-12-19 |
|
||||
|
||||
:::
|
||||
|
||||
|
@ -130,7 +130,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `2.7.0` | 2024-04-04 |
|
||||
| `darwin-arm` | `2.7.0` | 2024-05-23 |
|
||||
| `win10-x64` | `2.7.0` | 2024-03-27 |
|
||||
| `win11-x64` | `2.7.0` | 2024-12-20 |
|
||||
| `win11-arm` | `2.7.0` | 2024-05-25 |
|
||||
| `linux-x64` | `2.7.0` | 2024-03-21 |
|
||||
| `linux-arm` | `2.7.0` | 2024-05-23 |
|
||||
@ -700,7 +700,7 @@ folder must be added to the include path list:
|
||||
});
|
||||
// highlight-start
|
||||
// this line is required to make @cInclude("duktape.h") work
|
||||
exe.addIncludePath(.{ .path = "duktape-2.7.0/src" });
|
||||
exe.addIncludePath(b.path("duktape-2.7.0/src"));
|
||||
// highlight-end
|
||||
```
|
||||
|
||||
@ -714,7 +714,7 @@ and linked against `libc` and `libm`:
|
||||
});
|
||||
// highlight-start
|
||||
exe.addCSourceFile(.{:
|
||||
.file = .{ .path = "duktape-2.7.0/src/duktape.c" },
|
||||
.file = b.path("duktape-2.7.0/src/duktape.c"),
|
||||
.flags = &.{ "-std=c99", "-fno-sanitize=undefined" }
|
||||
});
|
||||
exe.linkSystemLibrary("c");
|
||||
@ -781,7 +781,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:--------|:---------|:-----------|
|
||||
| `darwin-x64` | `2.7.0` | `0.11.0` | 2024-03-10 |
|
||||
| `darwin-arm` | `2.7.0` | `0.12.0` | 2024-05-23 |
|
||||
| `win10-x64` | `2.7.0` | `0.11.0` | 2024-03-10 |
|
||||
| `win11-x64` | `2.7.0` | `0.13.0` | 2024-12-20 |
|
||||
| `win11-arm` | `2.7.0` | `0.12.0` | 2024-05-25 |
|
||||
| `linux-x64` | `2.7.0` | `0.12.0` | 2024-04-25 |
|
||||
| `linux-arm` | `2.7.0` | `0.12.0` | 2024-05-25 |
|
||||
@ -798,7 +798,7 @@ mkdir sheetjs-zig
|
||||
cd sheetjs-zig
|
||||
```
|
||||
|
||||
1) Download Zig 0.12.0 from https://ziglang.org/download/ and extract to the
|
||||
1) Download Zig 0.13.0 from https://ziglang.org/download/ and extract to the
|
||||
project folder.
|
||||
|
||||
<Tabs groupId="triple">
|
||||
@ -807,14 +807,14 @@ project folder.
|
||||
For X64 Mac:
|
||||
|
||||
```bash
|
||||
curl -LO https://ziglang.org/download/0.12.0/zig-macos-x86_64-0.12.0.tar.xz
|
||||
curl -LO https://ziglang.org/download/0.13.0/zig-macos-x86_64-0.13.0.tar.xz
|
||||
tar -xzf zig-macos-*.tar.xz
|
||||
```
|
||||
|
||||
For ARM64 Mac:
|
||||
|
||||
```bash
|
||||
curl -LO https://ziglang.org/download/0.12.0/zig-macos-aarch64-0.12.0.tar.xz
|
||||
curl -LO https://ziglang.org/download/0.13.0/zig-macos-aarch64-0.13.0.tar.xz
|
||||
tar -xzf zig-macos-*.tar.xz
|
||||
```
|
||||
|
||||
@ -825,7 +825,7 @@ tar -xzf zig-macos-*.tar.xz
|
||||
For X64 Linux:
|
||||
|
||||
```bash
|
||||
curl -LO https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz
|
||||
curl -LO https://ziglang.org/download/0.13.0/zig-linux-x86_64-0.13.0.tar.xz
|
||||
xz -d zig-linux-*.tar.xz
|
||||
tar -xf zig-linux-*.tar
|
||||
```
|
||||
@ -833,13 +833,13 @@ tar -xf zig-linux-*.tar
|
||||
For AArch64 Linux:
|
||||
|
||||
```bash
|
||||
curl -LO https://ziglang.org/download/0.12.0/zig-linux-aarch64-0.12.0.tar.xz
|
||||
curl -LO https://ziglang.org/download/0.13.0/zig-linux-aarch64-0.13.0.tar.xz
|
||||
xz -d zig-linux-*.tar.xz
|
||||
tar -xf zig-linux-*.tar
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
:::note pass
|
||||
|
||||
@ -850,15 +850,15 @@ The following commands should be run within WSL bash.
|
||||
For X64 Windows:
|
||||
|
||||
```bash
|
||||
curl -LO https://ziglang.org/download/0.12.0/zig-windows-x86_64-0.12.0.zip
|
||||
unzip zig-windows-x86_64-0.12.0.zip
|
||||
curl -LO https://ziglang.org/download/0.13.0/zig-windows-x86_64-0.13.0.zip
|
||||
unzip zig-windows-x86_64-0.13.0.zip
|
||||
```
|
||||
|
||||
For ARM64 Windows:
|
||||
|
||||
```bash
|
||||
curl -LO https://ziglang.org/download/0.12.0/zig-windows-aarch64-0.12.0.zip
|
||||
unzip zig-windows-aarch64-0.12.0.zip
|
||||
curl -LO https://ziglang.org/download/0.13.0/zig-windows-aarch64-0.13.0.zip
|
||||
unzip zig-windows-aarch64-0.13.0.zip
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
@ -881,7 +881,7 @@ unzip zig-windows-aarch64-0.12.0.zip
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
:::note pass
|
||||
|
||||
@ -929,13 +929,13 @@ mv *.js src`}
|
||||
```zig title="build.zig (add highlighted lines)"
|
||||
const exe = b.addExecutable(.{
|
||||
.name = "sheetjs-zig",
|
||||
.root_source_file = .{ .path = "src/main.zig" },
|
||||
.root_source_file = b.path("src/main.zig"),
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
// highlight-start
|
||||
exe.addCSourceFile(.{ .file = .{ .path = "duktape-2.7.0/src/duktape.c" }, .flags = &.{ "-std=c99", "-fno-sanitize=undefined" } });
|
||||
exe.addIncludePath(.{ .path = "duktape-2.7.0/src" });
|
||||
exe.addCSourceFile(.{ .file = b.path("duktape-2.7.0/src/duktape.c"), .flags = &.{ "-std=c99", "-fno-sanitize=undefined" } });
|
||||
exe.addIncludePath(b.path("duktape-2.7.0/src"));
|
||||
exe.linkSystemLibrary("c");
|
||||
exe.linkSystemLibrary("m");
|
||||
// highlight-end
|
||||
@ -981,7 +981,7 @@ sudo pacman -Syu glibc linux-api-headers
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
This command should be run in PowerShell:
|
||||
|
||||
|
@ -148,7 +148,7 @@ This demo was tested in the following deployments:
|
||||
|:--------------|:-------------|:--------------|:-----------------|:-----------|
|
||||
| `13.3.228` | `darwin-x64` | macOS 15.1.1 | `clang 16.0.0` | 2024-12-03 |
|
||||
| `12.7.130` | `darwin-arm` | macOS 14.5 | `clang 15.0.0` | 2024-05-25 |
|
||||
| `12.5.48` | `win10-x64` | Windows 10 | `CL 19.39.33523` | 2024-03-24 |
|
||||
| `12.7.130` | `win11-x64` | Windows 11 | `CL 19.42.34435` | 2024-12-20 |
|
||||
| `12.5.48` | `linux-x64` | HoloOS 3.5.17 | `gcc 13.1.1` | 2024-03-21 |
|
||||
| `12.7.130` | `linux-arm` | Debian 12 | `gcc 12.2.0` | 2024-05-25 |
|
||||
|
||||
@ -210,14 +210,19 @@ installed. In the sidebar, verify the following components are checked:
|
||||
In the "Individual components" tab, search for "Windows 11 SDK" and verify that
|
||||
"Windows 11 SDK (10.0.22621.0)" is checked.
|
||||
|
||||
**Even though newer SDKs exist, Windows 11 SDK 10.0.22621.0 must be installed!**
|
||||
|
||||
Click "Modify" and allow the installer to finish.
|
||||
|
||||
---
|
||||
|
||||
The SDK debugging tools must be installed after the SDK is installed.
|
||||
|
||||
1) Using the Search bar, search "Apps & features".
|
||||
1) Using the Search bar, search "Apps & features". If "Apps & features" is not
|
||||
available, search for "Installed apps".
|
||||
|
||||
2) When the setting panel opens, scroll down to "Windows Software Development
|
||||
Kit - Windows 10.0.22621 and click "Modify".
|
||||
Kit - Windows 10.0.22621" and click "Modify".
|
||||
|
||||
3) In the new window, select "Change" and click "Next"
|
||||
|
||||
@ -264,7 +269,8 @@ sudo chmod 777 /usr/local/lib
|
||||
[The bundle](https://storage.googleapis.com/chrome-infra/depot_tools.zip) is a
|
||||
ZIP file that should be downloaded and extracted.
|
||||
|
||||
The demo was last tested on an exFAT-formatted drive (mounted at `E:\`).
|
||||
The demo was last tested on a NTFS-formatted drive (mounted at `C:\`). The ZIP
|
||||
was extracted to `C:\src\depot_tools`.
|
||||
|
||||
After extracting, verify that the `depot_tools` folder is not read-only.
|
||||
|
||||
@ -290,14 +296,14 @@ script such as `.bashrc` or `.zshrc`
|
||||
|
||||
These instructions are for `cmd` use. Do not run in PowerShell!
|
||||
|
||||
It is strongly recommended to use the "Developer Command Prompt" from Visual
|
||||
Studio as it prepares the console to run build tools.
|
||||
It is strongly recommended to use "x64 Native Tools Developer Command Prompt"
|
||||
from Visual Studio as it prepares the console to run build tools.
|
||||
|
||||
:::
|
||||
|
||||
```bash
|
||||
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
|
||||
set PATH=E:\depot_tools;%PATH%
|
||||
set PATH=C:\src\depot_tools;%PATH%
|
||||
```
|
||||
|
||||
In addition, the `vs2022_install` variable must be set to the Visual Studio
|
||||
@ -347,14 +353,14 @@ the recommended commands and re-running `gclient`.
|
||||
|
||||
:::caution pass
|
||||
|
||||
There were errors pertaining to `gitconfig`:
|
||||
There may be errors pertaining to `gitconfig`:
|
||||
|
||||
```
|
||||
error: could not write config file E:/depot_tools/bootstrap-2@3_8_10_chromium_26_bin/git/etc/gitconfig: File exists
|
||||
```
|
||||
|
||||
This can happen if the `depot_tools` folder is read-only. The workaround is to
|
||||
unset the read-only flag for the `E:\depot_tools` folder.
|
||||
unset the read-only flag for the `depot_tools` folder.
|
||||
|
||||
:::
|
||||
|
||||
@ -381,7 +387,7 @@ Note that the actual repo will be placed in `~/dev/v8/v8`.
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
```bash
|
||||
cd E:\
|
||||
cd C:\
|
||||
mkdir v8
|
||||
cd v8
|
||||
fetch v8
|
||||
@ -584,7 +590,7 @@ The build passed after disabling the assertions:
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
```bash
|
||||
python3 tools\dev\v8gen.py -vv x64.release.sample
|
||||
@ -707,7 +713,7 @@ g++ -I. -Iinclude samples/hello-world.cc -o hello_world -fno-rtti -lv8_monolith
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows">
|
||||
<TabItem value="win11-x64" label="Windows">
|
||||
|
||||
```bash
|
||||
cl /I. /Iinclude samples/hello-world.cc /GR- v8_monolith.lib Advapi32.lib Winmm.lib Dbghelp.lib /std:c++17 /DV8_COMPRESS_POINTERS=1 /DV8_ENABLE_SANDBOX /link /out:hello_world.exe /LIBPATH:out.gn\x64.release.sample\obj\
|
||||
@ -735,7 +741,7 @@ cd sheetjs-v8
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
```bash
|
||||
cd E:\
|
||||
cd C:\
|
||||
mkdir sheetjs-v8
|
||||
cd sheetjs-v8
|
||||
```
|
||||
@ -793,7 +799,7 @@ ln -s ~/dev/v8/v8/out.gn/arm64.release.sample/obj
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
```bash
|
||||
copy E:\v8\v8\samples\hello-world.cc .\
|
||||
copy C:\v8\v8\samples\hello-world.cc .\
|
||||
```
|
||||
|
||||
10) Observe that exFAT does not support symbolic links and move on to step 11.
|
||||
@ -955,13 +961,13 @@ fn eval_code_ab(scope: &mut v8::HandleScope, code: &str) -> Vec<u8> {
|
||||
|
||||
This demo was last tested in the following deployments:
|
||||
|
||||
| Architecture | V8 Crate | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `0.92.0` | 2024-05-28 |
|
||||
| `darwin-arm` | `0.92.0` | 2024-05-25 |
|
||||
| `win10-x64` | `0.89.0` | 2024-03-24 |
|
||||
| `linux-x64` | `0.91.0` | 2024-04-25 |
|
||||
| `linux-arm` | `0.92.0` | 2024-05-25 |
|
||||
| Architecture | V8 Crate | Date |
|
||||
|:-------------|:----------|:-----------|
|
||||
| `darwin-x64` | `0.92.0` | 2024-05-28 |
|
||||
| `darwin-arm` | `0.92.0` | 2024-05-25 |
|
||||
| `win11-x64` | `130.0.2` | 2024-03-24 |
|
||||
| `linux-x64` | `0.91.0` | 2024-04-25 |
|
||||
| `linux-arm` | `0.92.0` | 2024-05-25 |
|
||||
|
||||
:::
|
||||
|
||||
@ -999,6 +1005,18 @@ curl -LO https://docs.sheetjs.com/pres.numbers`}
|
||||
curl -L -o src/main.rs https://docs.sheetjs.com/v8/main.rs
|
||||
```
|
||||
|
||||
:::info pass
|
||||
|
||||
There was a breaking change in version `0.102.0` affecting `v8::Context::new`.
|
||||
When targeting older versions of the crate, remove the second argument:
|
||||
|
||||
```rs title="src/main.rs"
|
||||
let context = v8::Context::new(handle_scope); // v8 <= 0.101.0
|
||||
//let context = v8::Context::new(handle_scope, Default::default()); // v8 >= 0.102.0
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
5) Build and run the app:
|
||||
|
||||
```bash
|
||||
@ -1030,7 +1048,7 @@ This demo was last tested in the following deployments:
|
||||
|:-------------|:--------------|:--------|:----------|:-----------|
|
||||
| `darwin-x64` | `12.6.228.13` | `3.1.3` | `22` | 2024-06-19 |
|
||||
| `darwin-arm` | `12.6.228.13` | `3.1.3` | `11.0.23` | 2024-06-19 |
|
||||
| `win10-x64` | `12.6.228.13` | `3.1.3` | `11.0.16` | 2024-06-21 |
|
||||
| `win11-x64` | `12.6.228.13` | `3.1.3` | `21.0.5` | 2024-12-20 |
|
||||
| `linux-x64` | `12.6.228.13` | `3.1.3` | `17.0.7` | 2024-06-20 |
|
||||
| `linux-arm` | `12.6.228.13` | `3.1.3` | `17.0.11` | 2024-06-20 |
|
||||
|
||||
@ -1189,7 +1207,7 @@ This demo was last tested in the following deployments:
|
||||
|:-------------|:--------------|:-----------|
|
||||
| `darwin-x64` | `12.3.219.12` | 2024-07-16 |
|
||||
| `darwin-arm` | `12.3.219.12` | 2024-07-16 |
|
||||
| `win10-x64` | `12.3.219.12` | 2024-07-16 |
|
||||
| `win11-x64` | `12.3.219.12` | 2024-12-20 |
|
||||
| `win11-arm` | `12.3.219.12` | 2024-07-16 |
|
||||
| `linux-x64` | `12.3.219.12` | 2024-07-16 |
|
||||
| `linux-arm` | `12.3.219.12` | 2024-07-16 |
|
||||
@ -1479,9 +1497,8 @@ This demo was last tested in the following deployments:
|
||||
| Architecture | V8 Version | Crate | Date |
|
||||
|:-------------|:--------------|:---------|:-----------|
|
||||
| `darwin-x64` | `12.6.228.3` | `0.92.0` | 2024-05-28 |
|
||||
| `darwin-arm` | `12.6.228.3` | `0.92.0` | 2024-05-23 |
|
||||
| `win10-x64` | `12.3.219.9` | `0.88.0` | 2024-03-24 |
|
||||
| `win11-x64` | `12.6.228.3` | `0.92.0` | 2024-05-23 |
|
||||
| `darwin-arm` | `12.6.228.3` | `0.92.0` | 2024-12-20 |
|
||||
| `win11-x64` | `12.6.228.3` | `0.92.0` | 2024-12-20 |
|
||||
| `linux-x64` | `12.3.219.9` | `0.88.0` | 2024-03-18 |
|
||||
| `linux-arm` | `12.6.228.3` | `0.92.0` | 2024-05-26 |
|
||||
|
||||
|
@ -41,7 +41,7 @@ setting the environment variable on supported platforms.
|
||||
:::note pass
|
||||
|
||||
Most of the integration functions are not documented. This explanation is based
|
||||
on version `3.1.0`.
|
||||
on version `4.1.0`.
|
||||
|
||||
:::
|
||||
|
||||
@ -165,7 +165,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `4.1.0` | 2024-12-17 |
|
||||
| `darwin-arm` | `3.1.2` | 2024-05-25 |
|
||||
| `win10-x64` | `3.1.0` | 2024-04-17 |
|
||||
| `win11-x64` | `4.1.0` | 2024-12-20 |
|
||||
| `win11-arm` | `3.1.2` | 2024-05-25 |
|
||||
| `linux-x64` | `3.1.0` | 2024-04-25 |
|
||||
| `linux-arm` | `3.1.2` | 2024-05-25 |
|
||||
@ -248,7 +248,7 @@ dotnet run
|
||||
|
||||
```bash
|
||||
dotnet nuget add source https://www.myget.org/F/jint/api/v3/index.json
|
||||
dotnet add package Jint --version 3.1.2
|
||||
dotnet add package Jint --version 4.1.0
|
||||
```
|
||||
|
||||
To verify Jint is installed, replace `Program.cs` with the following:
|
||||
@ -379,7 +379,7 @@ tested platforms are listed below:
|
||||
|:-----------------|:--------------|
|
||||
| Intel Mac | `osx-x64` |
|
||||
| ARM64 Mac | `osx-arm64` |
|
||||
| Windows 10 (x64) | `win10-x64` |
|
||||
| Windows 11 (x64) | `win-x64` |
|
||||
| Windows 11 (ARM) | `win-arm64` |
|
||||
| Linux (x64) | `linux-x64` |
|
||||
| Linux (ARM) | `linux-arm64` |
|
||||
@ -426,12 +426,12 @@ dotnet publish -c Release -r linux-arm64 --self-contained true -p:PublishSingleF
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows x64">
|
||||
<TabItem value="win-x64" label="Windows x64">
|
||||
|
||||
For Windows 10 x64, the RID is `win10-x64` and the command is:
|
||||
For Windows 11 x64, the RID is `win-x64` and the command is:
|
||||
|
||||
```powershell
|
||||
dotnet publish -c Release -r win10-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true
|
||||
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
@ -494,12 +494,12 @@ cp bin/Release/net6.0/linux-arm64/publish/SheetJSJint .
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Windows x64">
|
||||
<TabItem value="win-x64" label="Windows x64">
|
||||
|
||||
For Windows 10 x64, the RID is `win10-x64` and the command is:
|
||||
For Windows 10 x64, the RID is `win-x64` and the command is:
|
||||
|
||||
```powershell
|
||||
copy .\bin\Release\net6.0\win10-x64\publish\SheetJSJint.exe .
|
||||
copy .\bin\Release\net6.0\win-x64\publish\SheetJSJint.exe .
|
||||
```
|
||||
|
||||
:::caution pass
|
||||
@ -513,7 +513,7 @@ The system cannot find the path specified.
|
||||
The correct command was
|
||||
|
||||
```powershell
|
||||
copy .\bin\x64\Release\net6.0\win10-x64\publish\SheetJSJint.exe .
|
||||
copy .\bin\x64\Release\net6.0\win-x64\publish\SheetJSJint.exe .
|
||||
```
|
||||
|
||||
:::
|
||||
@ -545,7 +545,7 @@ copy .\bin\Release\net6.0\win-arm64\publish\SheetJSJint.exe .
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
```powershell
|
||||
.\SheetJSJint pres.xlsx
|
||||
.\SheetJSJint.exe pres.xlsx
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Go + Goja
|
||||
title: Sheets in Golang with Goja
|
||||
sidebar_label: Go + Goja
|
||||
pagination_prev: demos/bigdata/index
|
||||
pagination_next: solutions/input
|
||||
---
|
||||
@ -7,14 +8,24 @@ pagination_next: solutions/input
|
||||
import current from '/version.js';
|
||||
import CodeBlock from '@theme/CodeBlock';
|
||||
|
||||
Goja is a pure Go implementation of ECMAScript 5.
|
||||
Goja[^1] is a pure Go implementation of ECMAScript 5.
|
||||
|
||||
[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
|
||||
data from spreadsheets.
|
||||
|
||||
This demo uses Goja and SheetJS to read and write spreadsheets. We'll explore
|
||||
how to load SheetJS in the Goja engine, exchange binary data with a Go program
|
||||
and process spreadsheets and structured data.
|
||||
|
||||
The ["Complete Example"](#complete-example) section makes a command-line tool
|
||||
for reading arbitrary workbooks and writing data to XLSB workbooks.
|
||||
|
||||
## Integration Details
|
||||
|
||||
The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone)
|
||||
can be parsed and evaluated in a Goja context.
|
||||
|
||||
## Integration Details
|
||||
|
||||
_Initialize Goja_
|
||||
### Initialize Goja
|
||||
|
||||
Goja does not provide a `global` variable. It can be created in one line:
|
||||
|
||||
@ -27,7 +38,7 @@ vm := goja.New()
|
||||
v, err := vm.RunString("var global = (function(){ return this; }).call(null);")
|
||||
```
|
||||
|
||||
_Load SheetJS Scripts_
|
||||
### Load SheetJS Scripts
|
||||
|
||||
The shim and main libraries can be loaded by reading the scripts from the file
|
||||
system and evaluating in the Goja context:
|
||||
@ -94,9 +105,9 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Git Commit | Go version | Date |
|
||||
|:-------------|:-----------|:-----------|:-----------|
|
||||
| `darwin-x64` | `79f3a7e` | `1.23.3` | 2024-12-27 |
|
||||
| `darwin-x64` | `79f3a7e` | `1.23.3` | 2024-12-17 |
|
||||
| `darwin-arm` | `ccbae20` | `1.22.3` | 2024-05-23 |
|
||||
| `win10-x64` | `e401ed4` | `1.22.1` | 2024-03-24 |
|
||||
| `win11-x64` | `79f3a7e` | `1.23.4` | 2024-12-20 |
|
||||
| `win11-arm` | `ccbae20` | `1.22.3` | 2024-05-25 |
|
||||
| `linux-x64` | `e401ed4` | `1.22.1` | 2024-03-21 |
|
||||
| `linux-arm` | `ccbae20` | `1.19.8` | 2024-05-25 |
|
||||
@ -150,3 +161,5 @@ go build SheetGoja.go
|
||||
|
||||
If the program succeeded, the CSV contents will be printed to console and the
|
||||
file `sheetjsw.xlsb` will be created. That file can be opened with Excel.
|
||||
|
||||
[^1]: The project does not have a website. The library is hosted on [GitHub](https://pkg.go.dev/github.com/dop251/goja).
|
||||
|
@ -265,7 +265,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:-----------|:-----------|
|
||||
| `darwin-x64` | `6e2e68f` | 2024-12-17 |
|
||||
| `darwin-arm` | `6e2e68f` | 2024-12-17 |
|
||||
| `win10-x64` | `9e561d5` | 2024-03-04 |
|
||||
| `win11-x64` | `6e2e68f` | 2024-12-19 |
|
||||
| `win11-arm` | `d378a9f` | 2024-05-25 |
|
||||
| `linux-x64` | `3b45d15` | 2024-04-25 |
|
||||
| `linux-arm` | `d378a9f` | 2024-05-25 |
|
||||
@ -276,7 +276,7 @@ When the demo was tested, `6e2e68f` was the HEAD commit on the `master` branch.
|
||||
|
||||
:::caution pass
|
||||
|
||||
QuickJS does not officially support Windows. The `win10-x64` and `win11-arm`
|
||||
QuickJS does not officially support Windows. The `win11-x64` and `win11-arm`
|
||||
tests were run entirely within Windows Subsystem for Linux.
|
||||
|
||||
:::
|
||||
|
@ -374,7 +374,7 @@ fork, which powers React Native for Windows, does have built-in support[^5]
|
||||
|
||||
| Architecture | Git Commit | Date |
|
||||
|:-------------|:-----------|:-----------|
|
||||
| `win10-x64` | `240573e` | 2024-03-24 |
|
||||
| `win11-x64` | `4c64b05` | 2024-12-20 |
|
||||
| `win11-arm` | `240573e` | 2024-06-20 |
|
||||
|
||||
The ["Windows Example"](#windows-example) covers `hermes-windows`.
|
||||
@ -574,6 +574,16 @@ The easiest way to install is to select "Individual components" and search for
|
||||
|
||||
</details>
|
||||
|
||||
:::caution pass
|
||||
|
||||
Out of the box, Windows 11 will alias `python`, redirecting unsuspecting users
|
||||
to the App Installer. This redirect must be disabled:
|
||||
|
||||
Type `alias` in the search bar and select "Manage app execution aliases", In the
|
||||
settings pane, scroll down and turn off the alias for `python.exe`.
|
||||
|
||||
:::
|
||||
|
||||
1) Set up `depot_tools`.
|
||||
|
||||
[`depot_tools.zip`](https://storage.googleapis.com/chrome-infra/depot_tools.zip)
|
||||
@ -607,7 +617,7 @@ Click "OK" in each window (3 windows) and restart your computer.
|
||||
</details>
|
||||
|
||||
2) Delete `c:\src\depot_tools\ninja` if it exists, then download the
|
||||
[official Windows release](https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip)
|
||||
[official Windows release](https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-win.zip)
|
||||
and move the `ninja.exe` into `c:\src\depot_tools`. If a `ninja.exe` exists in
|
||||
the folder, replace the existing program.
|
||||
|
||||
@ -623,7 +633,7 @@ cd sheetjs-hermes
|
||||
```bash
|
||||
git clone https://github.com/microsoft/hermes-windows
|
||||
cd hermes-windows
|
||||
git checkout 240573e
|
||||
git checkout 4c64b05
|
||||
cd ..
|
||||
```
|
||||
|
||||
@ -694,7 +704,8 @@ cmake --build ./build
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
6) Copy every generated `.lib` and `.dll` file into the main folder:
|
||||
6) Copy every generated `.lib` and `.dll` file into the main folder. The
|
||||
following commands should be run in a PowerShell session:
|
||||
|
||||
<Tabs groupId="arch">
|
||||
<TabItem value="x64" label="x64">
|
||||
@ -707,8 +718,6 @@ dir -r -Path .\hermes-windows\workspace\build\win32-x64-debug\ -Filter "*.lib" |
|
||||
</TabItem>
|
||||
<TabItem value="arm" label="ARM64">
|
||||
|
||||
Run the following commands in a PowerShell session:
|
||||
|
||||
```powershell
|
||||
dir -r -Path .\build -Filter "*.dll" | Copy-Item -Destination .\
|
||||
dir -r -Path .\build -Filter "*.lib" | Copy-Item -Destination .\
|
||||
@ -726,7 +735,7 @@ curl -o sheetjs-hermesw.cpp https://docs.sheetjs.com/hermes/sheetjs-hermesw.cpp
|
||||
8) Build the application:
|
||||
|
||||
```powershell
|
||||
cl /MDd sheetjs-hermesw.cpp DbgHelp.lib *.lib /I hermes-windows\API /I hermes-windows\include /I hermes-windows\public\ /I hermes-windows\API\jsi
|
||||
cl /MDd sheetjs-hermesw.cpp DbgHelp.lib *.lib /I hermes-windows\API /I hermes-windows\include /I hermes-windows\public\ /I hermes-windows\API\jsi icuuc.lib icuin.lib
|
||||
```
|
||||
|
||||
:::caution pass
|
||||
@ -766,6 +775,7 @@ This demo was tested in the following deployments:
|
||||
| Architecture | Hermes | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `0.13.0` | 2024-12-17 |
|
||||
| `win11-x64` | `0.13.0` | 2024-12-20 |
|
||||
|
||||
:::
|
||||
|
||||
@ -810,6 +820,17 @@ cd sheetjs-hermes-cli
|
||||
cp ~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0 .
|
||||
```
|
||||
|
||||
:::note pass
|
||||
|
||||
On Windows, all DLLs must be copied:
|
||||
|
||||
```powershell
|
||||
copy %userprofile%\.jsvu\engines\hermes-0.13.0\hermes-0.13.0.exe .
|
||||
copy %userprofile%\.jsvu\engines\hermes-0.13.0\*.dll .
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
#### Create Script
|
||||
|
||||
4) Download the SheetJS Standalone script and the test file. Save both files in
|
||||
@ -872,5 +893,5 @@ If successful, the script will print CSV data from the test file.
|
||||
[^4]: See [`sheet_to_csv` in "Utilities"](/docs/api/utilities/csv#csv-output)
|
||||
[^5]: See [`microsoft/hermes-windows`](https://github.com/microsoft/hermes-windows) on GitHub
|
||||
[^6]: See ["Dependencies" in "Building and Running"](https://hermesengine.dev/docs/building-and-running/#dependencies) in the Hermes Documentation
|
||||
[^7]: See ["Download Python"](https://www.python.org/downloads/) in the Python website.
|
||||
[^7]: See ["Download Python"](https://www.python.org/downloads/) in the Python website. When the demo was last tested, Python 3.11.9 was installed.
|
||||
[^8]: See [the Visual Studio website](https://visualstudio.microsoft.com/#vs-section) for download links.
|
||||
|
@ -89,7 +89,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:---------|:---------|:-----------|
|
||||
| `darwin-x64` | `2.6.10` | `2.10.0` | 2024-12-17 |
|
||||
| `darwin-arm` | `2.6.10` | `2.9.1` | 2024-05-25 |
|
||||
| `win10-x64` | `3.2.3` | `2.9.1` | 2024-03-10 |
|
||||
| `win11-x64` | `3.3.6` | `2.10.0` | 2024-12-20 |
|
||||
| `win11-arm` | `3.0.2` | `2.9.1` | 2024-05-25 |
|
||||
| `linux-x64` | `3.0.5` | `2.9.1` | 2024-03-21 |
|
||||
| `linux-arm` | `3.1.2` | `2.9.1` | 2024-05-25 |
|
||||
|
@ -134,7 +134,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:-----------|:-----------|
|
||||
| `darwin-x64` | `e26c81f` | 2024-12-17 |
|
||||
| `darwin-arm` | `3a7b120` | 2024-05-23 |
|
||||
| `win10-x64` | `c3ead3f` | 2024-03-04 |
|
||||
| `win11-x64` | `e26c81f` | 2024-12-19 |
|
||||
| `win11-arm` | `13358c6` | 2024-07-14 |
|
||||
| `linux-x64` | `1f6e17c` | 2024-04-25 |
|
||||
|
||||
@ -143,7 +143,7 @@ This demo was tested in the following deployments:
|
||||
0) Install dependencies:
|
||||
|
||||
<Tabs groupId="triple">
|
||||
<TabItem value="darwin-x64" label="Intel Mac">
|
||||
<TabItem value="darwin-x64" label="X64 Mac">
|
||||
|
||||
```bash
|
||||
brew install icu4c cmake
|
||||
@ -166,7 +166,7 @@ sudo pacman -S cmake clang
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Intel Windows">
|
||||
<TabItem value="win11-x64" label="X64 Windows">
|
||||
|
||||
Install Visual Studio 2022 with the "Desktop Development with C++" workflow and
|
||||
the "Git for Windows" individual component.
|
||||
@ -196,7 +196,7 @@ cd ..
|
||||
2) Build ChakraCore:
|
||||
|
||||
<Tabs groupId="triple">
|
||||
<TabItem value="darwin-x64" label="Intel Mac">
|
||||
<TabItem value="darwin-x64" label="X64 Mac">
|
||||
|
||||
```bash
|
||||
cd ChakraCore
|
||||
@ -282,7 +282,7 @@ cd ..
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win10-x64" label="Intel Windows">
|
||||
<TabItem value="win11-x64" label="X64 Windows">
|
||||
|
||||
:::info pass
|
||||
|
||||
@ -432,7 +432,7 @@ make
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
<Tabs groupId="triple">
|
||||
<TabItem value="win10-x64" label="Intel Windows">
|
||||
<TabItem value="win11-x64" label="X64 Windows">
|
||||
|
||||
```
|
||||
cl sheetjs.ch.cpp ChakraCore.lib /I ChakraCore\lib\Jsrt /link /LIBPATH:ChakraCore\Build\VcBuild\bin\x64_debug
|
||||
|
@ -122,7 +122,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `0.20.0` | 2024-12-17 |
|
||||
| `darwin-arm` | `0.18.0` | 2024-05-23 |
|
||||
| `win10-x64` | `0.18.0` | 2024-04-25 |
|
||||
| `win11-x64` | `0.20.0` | 2024-12-19 |
|
||||
| `win11-arm` | `0.18.0` | 2024-05-25 |
|
||||
| `linux-x64` | `0.18.0` | 2024-03-21 |
|
||||
| `linux-arm` | `0.18.0` | 2024-05-25 |
|
||||
|
@ -38,7 +38,7 @@ This demo was tested in the following environments:
|
||||
|:-------------|:----------|:-----------|
|
||||
| `darwin-x64` | `d2d30df` | 2024-12-17 |
|
||||
| `darwin-arm` | `35465ed` | 2024-05-25 |
|
||||
| `win10-x64` | `47bd5d4` | 2024-04-14 |
|
||||
| `win11-x64` | `d2d30df` | 2024-12-19 |
|
||||
| `win11-arm` | `35465ed` | 2024-05-25 |
|
||||
| `linux-x64` | `cefd391` | 2024-03-21 |
|
||||
| `linux-arm` | `35465ed` | 2024-05-25 |
|
||||
|
@ -324,7 +324,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:--------|:-----------|
|
||||
| `darwin-x64` | `1.3.5` | 2024-12-17 |
|
||||
| `darwin-arm` | `1.3.4` | 2024-05-23 |
|
||||
| `win10-x64` | `1.3.4` | 2024-06-20 |
|
||||
| `win11-x64` | `1.3.5` | 2024-12-19 |
|
||||
| `win11-arm` | `1.3.4` | 2024-06-20 |
|
||||
| `linux-x64` | `1.3.4` | 2024-04-21 |
|
||||
| `linux-arm` | `1.3.4` | 2024-05-25 |
|
||||
@ -333,13 +333,13 @@ This demo was tested in the following deployments:
|
||||
|
||||
:::caution pass
|
||||
|
||||
MuJS distributions do not include native Windows projects. The `win10-x64` and
|
||||
MuJS distributions do not include native Windows projects. The `win11-x64` and
|
||||
`win11-arm` tests were run entirely within Windows Subsystem for Linux.
|
||||
|
||||
When building in WSL, `libreadline-dev` must be installed using `apt`:
|
||||
When building in WSL, `libreadline-dev` and `build-essential` must be installed:
|
||||
|
||||
```bash
|
||||
sudo apt-get install libreadline-dev
|
||||
sudo apt-get install libreadline-dev build-essential
|
||||
```
|
||||
|
||||
:::
|
||||
|
@ -178,7 +178,7 @@ This demo was tested in the following deployments:
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `3.2.8` | 2024-12-17 |
|
||||
| `darwin-arm` | `3.2.7` | 2024-06-15 |
|
||||
| `win10-x64` | `3.2.7` | 2024-06-21 |
|
||||
| `win11-x64` | `3.2.8` | 2024-12-19 |
|
||||
| `win11-arm` | `3.2.7` | 2024-07-14 |
|
||||
| `linux-x64` | `3.2.7` | 2024-06-20 |
|
||||
| `linux-arm` | `3.2.7` | 2024-06-20 |
|
||||
|
@ -46,7 +46,7 @@ These instructions were tested on the following platforms:
|
||||
| MacOS 14.4 (x64) | `darwin-x64` | 2024-07-12 |
|
||||
| MacOS 15.1 (ARM64) | `darwin-arm` | 2024-11-10 |
|
||||
| Windows 10 (x64) + WSL Ubuntu | `win10-x64` | 2024-07-12 |
|
||||
| Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2024-07-26 |
|
||||
| Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2024-12-19 |
|
||||
| Windows 11 (ARM) + WSL Ubuntu | `win11-arm` | 2024-05-23 |
|
||||
|
||||
With some additional dependencies, the unminified scripts are reproducible and
|
||||
@ -113,6 +113,25 @@ wsl --install Ubuntu
|
||||
|
||||
:::
|
||||
|
||||
:::caution pass
|
||||
|
||||
In Windows 11 24H2, the `wsl` commands may fail with the following message:
|
||||
|
||||
```
|
||||
Class not registered
|
||||
Error code: Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG
|
||||
```
|
||||
|
||||
[WSL should be manually installed](https://github.com/microsoft/WSL/releases).
|
||||
Once installed, WSL2 should be activated:
|
||||
|
||||
```bash
|
||||
wsl --set-default-version 2
|
||||
wsl --install -d Ubuntu
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
:::danger pass
|
||||
|
||||
**WSL will not run in a Windows on ARM VM on computers with the M1 CPU**
|
||||
|
@ -1,6 +1,6 @@
|
||||
// @deno-types="https://cdn.sheetjs.com/xlsx-0.20.3/package/types/index.d.ts"
|
||||
import { read, utils, set_cptable, version } from 'https://cdn.sheetjs.com/xlsx-0.20.3/package/xlsx.mjs';
|
||||
import * as cptable from 'https://cdn.sheetjs.com/xlsx-0.20.3/package/dist/cpexcel.full.mjs';
|
||||
// @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts"
|
||||
import { read, utils, set_cptable, version } 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';
|
||||
set_cptable(cptable);
|
||||
|
||||
import * as Drash from "https://cdn.jsdelivr.net/gh/drashland/drash@v2.8.1/mod.ts";
|
||||
|
@ -63,5 +63,5 @@ pub fn main() !void {
|
||||
const slc: []u8 = @as([*]u8, @ptrCast(c_ptr))[0..sz];
|
||||
|
||||
// write to file
|
||||
_ = try std.fs.cwd().writeFile("sheetjs.zig.xlsx", slc);
|
||||
_ = try std.fs.cwd().writeFile(.{ .sub_path = "sheetjs.zig.xlsx", .data = slc });
|
||||
}
|
||||
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
@ -27,7 +27,8 @@ fn main() {
|
||||
|
||||
let isolate = &mut v8::Isolate::new(Default::default());
|
||||
let handle_scope = &mut v8::HandleScope::new(isolate);
|
||||
let context = v8::Context::new(handle_scope);
|
||||
//let context = v8::Context::new(handle_scope); // v8 <= 0.101.0
|
||||
let context = v8::Context::new(handle_scope, Default::default()); // v8 >= 0.102.0
|
||||
let context_scope = &mut v8::ContextScope::new(handle_scope, context);
|
||||
|
||||
/* load library */
|
||||
|
@ -1,4 +1,3 @@
|
||||
//const version = "0.20.2";
|
||||
import { version } from "xlsx";
|
||||
export default version;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user