---
title: Sheets on the Command Line
sidebar_label: Command-Line Tools
hide_table_of_contents: true
pagination_prev: demos/desktop/index
pagination_next: demos/data/index
---
import current from '/version.js';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import CodeBlock from '@theme/CodeBlock';
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
import FrameworkData from '/data/cli.js'
export const r = {style: {color:"red"}};
export const B = {style: {fontWeight:"bold"}};
With the availability of JS engines and the success of server-side platforms,
it is possible to build standalone command-line tools from JavaScript code.
[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.
```bash title="Sample terminal session"
> xlsx-cli.exe pres.numbers
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:
{useCurrentSidebarCategory().items.map((item, index) => {
const listyle = (item.customProps?.icon) ? {
listStyleImage: `url("${item.customProps.icon}")`
} : {};
return (-
{item.label}{item.customProps?.summary && (" - " + item.customProps.summary)}
);
})}
#### Platform Support
The following frameworks have been tested on the following platforms:
:::tip pass
The [`xlsx-cli`](https://cdn.sheetjs.com/xlsx-cli/) NodeJS script is available
as a package on the SheetJS CDN. It is a straightforward command-line tool for
translating files between supported spreadsheet file formats.
:::
:::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.
:::
#### NodeJS
This demo has been organized by framework:
- [`boxednode`](/docs/demos/cli/boxednode)
- [`nexe`](/docs/demos/cli/nexe)
- [`pkg`](/docs/demos/cli/pkg)
#### V8
**[The exposition has been moved to the "V8" demo.](/docs/demos/engines/v8#snapshots)**
#### BunJS
**[The exposition has been moved to a separate page.](/docs/demos/cli/bunsea)**
#### Deno
**[The exposition has been moved to a separate page.](/docs/demos/cli/denosea)**
#### Dedicated Engines
The following demos for JS engines produce standalone programs:
- [V8](/docs/demos/engines/v8)
- [Duktape](/docs/demos/engines/duktape)
- [ChakraCore](/docs/demos/engines/chakra)
- [QuickJS](/docs/demos/engines/quickjs)
- [Goja](/docs/demos/engines/goja)
- [JavaScriptCore](/docs/demos/engines/jsc)