2022-07-31 23:45:34 +00:00
|
|
|
---
|
2024-05-29 05:10:39 +00:00
|
|
|
title: Sheets on the Command Line
|
|
|
|
sidebar_label: Command-Line Tools
|
|
|
|
hide_table_of_contents: true
|
2024-03-18 08:24:41 +00:00
|
|
|
pagination_prev: demos/desktop/index
|
2023-02-28 11:40:44 +00:00
|
|
|
pagination_next: demos/data/index
|
2022-07-31 23:45:34 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
import current from '/version.js';
|
2022-08-01 08:15:50 +00:00
|
|
|
import Tabs from '@theme/Tabs';
|
|
|
|
import TabItem from '@theme/TabItem';
|
2023-05-07 13:58:36 +00:00
|
|
|
import CodeBlock from '@theme/CodeBlock';
|
2024-03-18 08:24:41 +00:00
|
|
|
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
2024-05-29 05:10:39 +00:00
|
|
|
import FrameworkData from '/data/cli.js'
|
2022-07-31 23:45:34 +00:00
|
|
|
|
2024-05-28 05:20:05 +00:00
|
|
|
export const r = {style: {color:"red"}};
|
|
|
|
export const B = {style: {fontWeight:"bold"}};
|
|
|
|
|
2022-08-25 08:22:28 +00:00
|
|
|
With the availability of JS engines and the success of server-side platforms,
|
2024-03-18 08:24:41 +00:00
|
|
|
it is possible to build standalone command-line tools from JavaScript code.
|
2022-07-31 23:45:34 +00:00
|
|
|
|
2024-03-18 08:24:41 +00:00
|
|
|
[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
|
|
|
|
data from spreadsheets.
|
|
|
|
|
|
|
|
This demo covers a number of strategies for building standalone spreadsheet
|
|
|
|
processors. The ultimate goal is to use SheetJS libraries to generate CSV output
|
|
|
|
from arbitrary spreadsheet files. The generated command-line tool will accept an
|
|
|
|
argument, parse the specified workbook, and print CSV rows to the terminal.
|
|
|
|
|
2024-05-28 05:20:05 +00:00
|
|
|
```bash title="Sample terminal session"
|
|
|
|
> xlsx-cli.exe pres.numbers
|
2024-03-18 08:24:41 +00:00
|
|
|
Name,Index
|
|
|
|
Bill Clinton,42
|
|
|
|
GeorgeW Bush,43
|
|
|
|
Barack Obama,44
|
|
|
|
Donald Trump,45
|
|
|
|
Joseph Biden,46
|
|
|
|
```
|
|
|
|
|
|
|
|
Demos for common standalone CLI tools are included in separate pages:
|
|
|
|
|
|
|
|
<ul>{useCurrentSidebarCategory().items.map((item, index) => {
|
|
|
|
const listyle = (item.customProps?.icon) ? {
|
|
|
|
listStyleImage: `url("${item.customProps.icon}")`
|
|
|
|
} : {};
|
|
|
|
return (<li style={listyle} {...(item.customProps?.class ? {className: item.customProps.class}: {})}>
|
|
|
|
<a href={item.href}>{item.label}</a>{item.customProps?.summary && (" - " + item.customProps.summary)}
|
|
|
|
</li>);
|
|
|
|
})}</ul>
|
2022-07-31 23:45:34 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
#### Platform Support
|
|
|
|
|
|
|
|
The following frameworks have been tested on the following platforms:
|
|
|
|
|
|
|
|
<FrameworkData/>
|
|
|
|
|
2024-10-26 03:17:31 +00:00
|
|
|
:::note pass
|
|
|
|
|
|
|
|
Asterisks (✱) in the Windows for ARM column mark tests that generated x64
|
|
|
|
binaries. The CLI tools run under the x64 emulator integrated in Windows.
|
|
|
|
|
|
|
|
:::
|
|
|
|
|
2023-10-11 02:18:57 +00:00
|
|
|
:::tip pass
|
|
|
|
|
|
|
|
The [`xlsx-cli`](https://cdn.sheetjs.com/xlsx-cli/) NodeJS script is available
|
2024-05-29 05:10:39 +00:00
|
|
|
as a package on the SheetJS CDN. It is a straightforward command-line tool for
|
2023-10-11 02:18:57 +00:00
|
|
|
translating files between supported spreadsheet file formats.
|
|
|
|
|
|
|
|
:::
|
|
|
|
|
2024-03-18 08:24:41 +00:00
|
|
|
:::caution pass
|
|
|
|
|
|
|
|
For most common deployment scenarios, it is possible to install a server-side
|
|
|
|
platform such as [NodeJS](/docs/getting-started/installation/nodejs).
|
|
|
|
|
|
|
|
**It is strongly recommended to use a dedicated platform when possible.**
|
|
|
|
|
|
|
|
The standalone programs generated in this demo are useful when a dedicated
|
|
|
|
server-side scripting platform cannot be installed on the target computer.
|
|
|
|
|
|
|
|
:::
|
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
#### NodeJS
|
2024-05-28 05:20:05 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
This demo has been organized by framework:
|
2024-05-28 05:20:05 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
- [`boxednode`](/docs/demos/cli/boxednode)
|
|
|
|
- [`nexe`](/docs/demos/cli/nexe)
|
|
|
|
- [`pkg`](/docs/demos/cli/pkg)
|
2024-05-28 05:20:05 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
#### V8
|
2024-05-28 05:20:05 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
**[The exposition has been moved to the "V8" demo.](/docs/demos/engines/v8#snapshots)**
|
2024-05-28 05:20:05 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
#### BunJS
|
2024-05-28 05:20:05 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
**[The exposition has been moved to a separate page.](/docs/demos/cli/bunsea)**
|
2023-05-25 01:36:15 +00:00
|
|
|
|
2024-03-18 08:24:41 +00:00
|
|
|
#### Deno
|
2023-05-09 08:08:01 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
**[The exposition has been moved to a separate page.](/docs/demos/cli/denosea)**
|
2023-05-09 08:08:01 +00:00
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
#### Dedicated Engines
|
2023-05-09 08:08:01 +00:00
|
|
|
|
|
|
|
The following demos for JS engines produce standalone programs:
|
|
|
|
|
2024-05-29 05:10:39 +00:00
|
|
|
- [V8](/docs/demos/engines/v8)
|
2023-05-09 08:08:01 +00:00
|
|
|
- [Duktape](/docs/demos/engines/duktape)
|
2023-05-23 06:28:14 +00:00
|
|
|
- [ChakraCore](/docs/demos/engines/chakra)
|
|
|
|
- [QuickJS](/docs/demos/engines/quickjs)
|
2023-05-09 08:08:01 +00:00
|
|
|
- [Goja](/docs/demos/engines/goja)
|
|
|
|
- [JavaScriptCore](/docs/demos/engines/jsc)
|