5.8 KiB
| title | sidebar_label | pagination_prev | pagination_next | sidebar_custom_props | ||
|---|---|---|---|---|---|---|
| Spreadsheet Tools with Nexe | nexe | demos/desktop/index | demos/data/index |
|
import current from '/version.js'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock';
export const r = {style: {color:"red"}}; export const B = {style: {fontWeight:"bold"}};
nexe1 is a tool for generating command-line tools that embed scripts.
SheetJS is a JavaScript library for reading and writing data from spreadsheets.
This demo uses nexe and SheetJS to create a standalone CLI tool for parsing
spreadsheets and converting to other formats.
:::info pass
The latest prebuilt package matches NodeJS version 14.15.3.
nexe can build the required packages for newer NodeJS versions.
:::
:::note Tested Deployments
This demo was tested in the following deployments:
| Architecture | Version | NodeJS | Source | Date |
|---|---|---|---|---|
darwin-x64 |
4.0.0-rc.6 |
14.15.3 |
Pre-built | 2025-01-19 |
darwin-arm |
4.0.0-rc.6 |
22.14.0 |
Compiled | 2025-04-03 |
win11-x64 |
4.0.0-rc.6 |
14.15.3 |
Pre-built | 2024-12-19 |
win11-arm |
4.0.0-rc.6 |
22.14.0 |
Compiled | 2025-02-23 |
linux-x64 |
4.0.0-rc.6 |
14.15.3 |
Pre-built | 2024-12-31 |
linux-arm |
4.0.0-rc.6 |
22.13.0 |
Compiled | 2025-02-15 |
:::
Integration Details
The SheetJS NodeJS module can be
required from scripts. nexe will automatically handle packaging.
Script Requirements
Scripts that exclusively use SheetJS libraries and NodeJS built-in modules can
be bundled using nexe.
The demo script xlsx-cli.js runs in NodeJS. It
is a simple command-line tool for reading and writing spreadsheets.
Complete Example
- Download the test file https://docs.sheetjs.com/pres.numbers:
curl -o pres.numbers https://docs.sheetjs.com/pres.numbers
- Download
xlsx-cli.js
curl -o xlsx-cli.js https://docs.sheetjs.com/cli/xlsx-cli.js
- Install the dependencies:
- Create the standalone program:
npx -y nexe -t 14.15.3 xlsx-cli.js
Building from source (click to hide)
When the demo was tested on ARM targets, the Nexe pre-built packages were missing. For unsupported NodeJS versions, packages must be built from source:
npx -y nexe xlsx-cli.js --build --python=$(which python3) --make="-j8"
On Windows x64, the --build flag suffices:
npx -y nexe xlsx-cli.js --build --make="-j8"
On Windows ARM, the target windows-arm64-22.14.0 must be specified and the
command must be run in a "Native Tools Command Prompt":
npx -y nexe xlsx-cli.js --build --make="-j8" --target=windows-arm64-22.14.0
vcbuild.bat issues
The Windows ARM build may fail with a vcbuild.bat error:
Error: vcbuild.bat nosign release arm64 exited with code: 1
Pass the --verbose flag for more details:
npx -y nexe xlsx-cli.js --build --make="-j8" --target=windows-arm64-22.14.0 --verbose
Common error messages:
"Python was not found"
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
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.
"Could not find Python"
Could not find Python.
After installing Python using the official installer, the command should be run in a new terminal window.
Python version mismatch ("Please use")
Node.js configure: found Python 2.7.18
Please use python3.11 or python3.10 or python3.9 or python3.8 or python3.7 or python3.6
The resolved version of Python can be found with
where python
In some tests, a Python 2 version appeared first. This was fixed by finding the
Python 3 location and prepending it to PATH:
set PATH="C:\correct\path\to\python\three";%PATH%
This generates xlsx-cli or xlsx-cli.exe depending on platform.
- Run the generated program, passing
pres.numbersas the argument:
./xlsx-cli pres.numbers
.\xlsx-cli.exe pres.numbers
The program should display CSV contents from the first sheet:
Name,Index
Bill Clinton,42
GeorgeW Bush,43
Barack Obama,44
Donald Trump,45
Joseph Biden,46
-
The project does not have a website. The source repository is publicly available. ↩︎