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"}};
nexe
1 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 |
20.18.0 |
Compiled | 2025-02-13 |
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.numbers
as 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. ↩︎