diff --git a/docz/docs/03-demos/01-frontend/01-react.md b/docz/docs/03-demos/01-frontend/01-react.md index 3d9ee2a..4f54ac3 100644 --- a/docz/docs/03-demos/01-frontend/01-react.md +++ b/docz/docs/03-demos/01-frontend/01-react.md @@ -1,7 +1,7 @@ --- title: ReactJS pagination_prev: demos/index -pagination_next: demos/mobile/index +pagination_next: demos/grid/index sidebar_position: 1 --- @@ -118,6 +118,38 @@ export default function SheetJSReactAoO() { } ``` +
How to run the example (click to show) + +:::note + +This demo was last run on 2023 February 28 using `create-react-app@5.0.1` and +`react-scripts@5.0.1`. + +::: + +1) Run `npx create-react-app@5.0.1 --scripts-version=5.0.1 sheetjs-react`. + +2) Install the SheetJS dependency and start the dev server: + +```bash +cd sheetjs-react +npm install +npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz +npm start +``` + +3) Open a web browser and access the displayed URL (`http://localhost:3000`) + +4) Replace `src/App.js` with the `src/SheetJSReactAoO.js` example. + +The page will refresh and show a table with an Export button. Click the button +and the page will attempt to download `SheetJSReactAoA.xlsx`. + +5) Build the site with `npm run build`, then test with `npx http-server build`. +Access `http://localhost:8080` with a web browser to test the bundled site. + +
+ ### HTML The main disadvantage of the Array of Objects approach is the specific nature @@ -162,10 +194,42 @@ export default function SheetJSReactHTML() { // highlight-next-line
- ); + ); } ``` +
How to run the example (click to show) + +:::note + +This demo was last run on 2023 February 28 using `create-react-app@5.0.1` and +`react-scripts@5.0.1`. + +::: + +1) Run `npx create-react-app@5.0.1 --scripts-version=5.0.1 sheetjs-react`. + +2) Install the SheetJS dependency and start the dev server: + +```bash +cd sheetjs-react +npm install +npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz +npm start +``` + +3) Open a web browser and access the displayed URL (`http://localhost:3000`) + +4) Replace `src/App.js` with the `src/SheetJSReactHTML.js` example. + +The page will refresh and show a table with an Export button. Click the button +and the page will attempt to download `SheetJSReactHTML.xlsx`. + +5) Build the site with `npm run build`, then test with `npx http-server build`. +Access `http://localhost:8080` with a web browser to test the bundled site. + +
+ ### Rows and Columns Some data grids and UI components split worksheet state in two parts: an array diff --git a/docz/docs/03-demos/01-frontend/02-vue.md b/docz/docs/03-demos/01-frontend/02-vue.md index 1c42d73..b57de51 100644 --- a/docz/docs/03-demos/01-frontend/02-vue.md +++ b/docz/docs/03-demos/01-frontend/02-vue.md @@ -1,7 +1,7 @@ --- title: VueJS pagination_prev: demos/index -pagination_next: demos/mobile/index +pagination_next: demos/grid/index sidebar_position: 2 --- @@ -114,7 +114,7 @@ function exportFile() { ``` -
How to run the example (click to show) +
How to run the example (click to show) :::note @@ -190,7 +190,7 @@ function exportFile() { ``` -
How to run the example (click to show) +
How to run the example (click to show) :::note diff --git a/docz/docs/03-demos/01-frontend/03-angular.md b/docz/docs/03-demos/01-frontend/03-angular.md index 88e8a45..9b60475 100644 --- a/docz/docs/03-demos/01-frontend/03-angular.md +++ b/docz/docs/03-demos/01-frontend/03-angular.md @@ -1,7 +1,7 @@ --- title: Angular pagination_prev: demos/index -pagination_next: demos/mobile/index +pagination_next: demos/grid/index sidebar_position: 3 --- @@ -148,7 +148,7 @@ export class AppComponent { } ``` -
How to run the example (click to show) +
How to run the example (click to show) :::note @@ -236,7 +236,7 @@ export class AppComponent { } ``` -
How to run the example (click to show) +
How to run the example (click to show) :::note diff --git a/docz/docs/03-demos/01-frontend/04-svelte.md b/docz/docs/03-demos/01-frontend/04-svelte.md index d0fab62..747294c 100644 --- a/docz/docs/03-demos/01-frontend/04-svelte.md +++ b/docz/docs/03-demos/01-frontend/04-svelte.md @@ -1,7 +1,7 @@ --- title: Svelte pagination_prev: demos/index -pagination_next: demos/mobile/index +pagination_next: demos/grid/index sidebar_position: 4 --- diff --git a/docz/docs/03-demos/01-frontend/08-bundler.md b/docz/docs/03-demos/01-frontend/08-bundler.md index d88fb90..9e69f91 100644 --- a/docz/docs/03-demos/01-frontend/08-bundler.md +++ b/docz/docs/03-demos/01-frontend/08-bundler.md @@ -1,7 +1,7 @@ --- title: Bundlers pagination_prev: demos/index -pagination_next: demos/mobile/index +pagination_next: demos/grid/index sidebar_position: 8 sidebar_custom_props: skip: 1 diff --git a/docz/docs/03-demos/01-frontend/09-legacy.md b/docz/docs/03-demos/01-frontend/09-legacy.md index 2c1f10e..b0f8cee 100644 --- a/docz/docs/03-demos/01-frontend/09-legacy.md +++ b/docz/docs/03-demos/01-frontend/09-legacy.md @@ -1,7 +1,7 @@ --- title: Legacy Frameworks pagination_prev: demos/index -pagination_next: demos/mobile/index +pagination_next: demos/grid/index sidebar_position: 9 sidebar_custom_props: skip: 1 diff --git a/docz/docs/03-demos/01-frontend/_category_.json b/docz/docs/03-demos/01-frontend/_category_.json index 47e260c..e37f913 100644 --- a/docz/docs/03-demos/01-frontend/_category_.json +++ b/docz/docs/03-demos/01-frontend/_category_.json @@ -1,5 +1,4 @@ { "label": "Web Frameworks", - "position": 1, - "collapsed": false + "position": 1 } \ No newline at end of file diff --git a/docz/docs/03-demos/01-frontend/index.md b/docz/docs/03-demos/01-frontend/index.md index a9a7551..37f1afd 100644 --- a/docz/docs/03-demos/01-frontend/index.md +++ b/docz/docs/03-demos/01-frontend/index.md @@ -1,7 +1,7 @@ --- title: Web Frameworks pagination_prev: demos/index -pagination_next: demos/mobile/index +pagination_next: demos/grid/index --- import DocCardList from '@theme/DocCardList'; diff --git a/docz/docs/03-demos/02-grid/01-xs.md b/docz/docs/03-demos/02-grid/01-xs.md new file mode 100644 index 0000000..7faef86 --- /dev/null +++ b/docz/docs/03-demos/02-grid/01-xs.md @@ -0,0 +1,118 @@ +--- +title: x-spreadsheet +pagination_prev: demos/frontend/index +pagination_next: demos/net/index +--- + + + + + + + +With a familiar UI, `x-spreadsheet` is an excellent choice for a modern editor. + +[Click here for a live standalone integration demo.](pathname:///xspreadsheet/) + +## Live Demo + +:::note + +Due to CSS conflicts between the data grid and the documentation generator, +features like scrolling may not work as expected. + +[The linked demo uses a simple HTML page.](pathname:///xspreadsheet/) + +::: + +```jsx live +function SheetJSXSpread() { + const [url, setUrl] = React.useState("https://sheetjs.com/pres.numbers"); + const [done, setDone] = React.useState(false); + const ref = React.useRef(); + const set_url = React.useCallback((evt) => setUrl(evt.target.value)); + + return ( <> +
+ {!done && ( <> + URL: +
+ )} + ); +} +``` + +## Integration Library + +The integration library can be downloaded from the SheetJS CDN: + +- [Development Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.js) +- [Production Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.min.js) + +When used in a browser tag, it exposes two functions: `xtos` and `stox`. + +- `stox(worksheet)` returns a data structure suitable for `grid.loadData` +- `xtos(data)` accepts the result of `grid.getData` and generates a workbook + +### Reading Data + +The following snippet fetches a spreadsheet and loads the grid: + +```js +(async() => { + const ab = await (await fetch("https://sheetjs.com/pres.numbers")).arrayBuffer(); + grid.loadData(stox(XLSX.read(ab))); +})(); +``` + +The same pattern can be used in file input elements and other data sources. + +### Writing Data + +The following snippet exports the grid data to a file: + +```js +/* build workbook from the grid data */ +XLSX.writeFile(xtos(grid.getData()), "SheetJS.xlsx"); +``` + +## Other Details + +#### Obtaining the Library + +The `x-data-spreadsheet` NodeJS packages include a minified script that can be +directly inserted as a script tag. The unpkg CDN also serves this script: + +```html + + + + +``` + +#### Previewing and Editing Data + +The HTML document needs a container element: + +```html +
+``` + +Grid initialization is a one-liner: + +```js +var grid = x_spreadsheet(document.getElementById("gridctr")); +``` + +`x-spreadsheet` handles the entire edit cycle. No intervention is necessary. + +#### Additional Features + +This demo barely scratches the surface. The underlying grid component includes +many additional features that work with [SheetJS Pro](https://sheetjs.com/pro). diff --git a/docz/docs/03-demos/02-grid/_category_.json b/docz/docs/03-demos/02-grid/_category_.json new file mode 100644 index 0000000..6739e79 --- /dev/null +++ b/docz/docs/03-demos/02-grid/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Data Grids and Tables", + "position": 2 +} \ No newline at end of file diff --git a/docz/docs/03-demos/05-grid.md b/docz/docs/03-demos/02-grid/index.md similarity index 92% rename from docz/docs/03-demos/05-grid.md rename to docz/docs/03-demos/02-grid/index.md index 1a44f4e..6e2d6c3 100644 --- a/docz/docs/03-demos/05-grid.md +++ b/docz/docs/03-demos/02-grid/index.md @@ -1,7 +1,7 @@ --- title: Data Grids and Tables -pagination_prev: demos/cloud/index -pagination_next: demos/data/index +pagination_prev: demos/frontend/index +pagination_next: demos/net/index --- Various JavaScript UI components provide a more interactive editing experience. @@ -30,83 +30,11 @@ it is easier to process an array of arrays. ### x-spreadsheet -With a familiar UI, [`x-spreadsheet`](https://myliang.github.io/x-spreadsheet/) -is an excellent choice for developers looking for a modern editor. +With a familiar UI, `x-spreadsheet` is an excellent choice for a modern editor. [Click here for a live integration demo.](pathname:///xspreadsheet/) -
Full Exposition (click to show) - -**Obtaining the Library** - -The `x-data-spreadsheet` NodeJS packages include a minified script that can be -directly inserted as a script tag. The unpkg CDN also serves this script: - -```html - - - - -``` - -**Previewing and Editing Data** - -The HTML document needs a container element: - -```html -
-``` - -Grid initialization is a one-liner: - -```js -var grid = x_spreadsheet(document.getElementById("gridctr")); -``` - -`x-spreadsheet` handles the entire edit cycle. No intervention is necessary. - -**SheetJS and x-spreadsheet** - -The integration library can be downloaded from the SheetJS CDN: - -[Development Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.js) - -[Production Use](https://cdn.sheetjs.com/xspreadsheet/xlsxspread.min.js) - - -When used in a browser tag, it exposes two functions: `xtos` and `stox`. - -- `stox(worksheet)` returns a data structure suitable for `grid.loadData` -- `xtos(data)` accepts the result of `grid.getData` and generates a workbook - -_Reading Data_ - -The following snippet fetches a spreadsheet and loads the grid: - -```js -(async() => { - const ab = await (await fetch("https://sheetjs.com/pres.numbers")).arrayBuffer(); - grid.loadData(stox(XLSX.read(ab))); -})(); -``` - -The same pattern can be used in file input elements and other data sources. - -_Writing Data_ - -The following snippet exports the grid data to a file: - -```js -/* build workbook from the grid data */ -XLSX.writeFile(xtos(grid.getData()), "SheetJS.xlsx"); -``` - -**Additional Features** - -This demo barely scratches the surface. The underlying grid component includes -many additional features that work with [SheetJS Pro](https://sheetjs.com/pro). - -
+[The exposition has been moved to a separate page.](/docs/demos/grid/xs) ### Canvas DataGrid @@ -984,7 +912,7 @@ export default function ReactTable() { {/* ... TR and TD/TH elements ... */}
- ); + ); } ``` @@ -1003,7 +931,7 @@ import { useRef } from "react"; export default function BasicTable() { // highlight-next-line const tbl = useRef(null); - return (<> + return ( <> )} + ) : ()} ); } ``` @@ -233,7 +233,7 @@ function SheetJSFetchDL() { setHTML(XLSX.utils.sheet_to_html(ws)); }, []); - return (
); + return (
); } ``` @@ -278,10 +278,10 @@ function SheetJSFetchUL() { return (
     CSV Data
     
{csv}
- {sz ? (<> + {sz ? ( <> Generated file size: {sz} bytes
- ) : ()} + ) : ()}
); } ``` @@ -342,7 +342,7 @@ function SheetJSAxiosDL() { setHTML(XLSX.utils.sheet_to_html(ws)); }, []); - return (
); + return (
); } ``` @@ -386,10 +386,10 @@ function SheetJSAxiosUL() { return (
     CSV Data
     
{csv}
- {sz ? (<> + {sz ? ( <> Generated file size: {sz} bytes
- ) : ()} + ) : ()}
); } ``` @@ -448,7 +448,7 @@ function SheetJSSuperAgentDL() { }); }, []); - return (
); + return (
); } ``` @@ -494,10 +494,10 @@ function SheetJSSuperAgentUL() { return (
     CSV Data
     
{csv}
- {sz ? (<> + {sz ? ( <> Generated file size: {sz} bytes
- ) : ()} + ) : ()}
); } ``` diff --git a/docz/docs/03-demos/09-server.md b/docz/docs/03-demos/03-net/02-server.md similarity index 100% rename from docz/docs/03-demos/09-server.md rename to docz/docs/03-demos/03-net/02-server.md diff --git a/docz/docs/03-demos/42-headless.md b/docz/docs/03-demos/03-net/09-headless.md similarity index 100% rename from docz/docs/03-demos/42-headless.md rename to docz/docs/03-demos/03-net/09-headless.md diff --git a/docz/docs/03-demos/03-net/_category_.json b/docz/docs/03-demos/03-net/_category_.json new file mode 100644 index 0000000..9059674 --- /dev/null +++ b/docz/docs/03-demos/03-net/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Servers and Remote Data", + "position": 3 +} \ No newline at end of file diff --git a/docz/docs/03-demos/03-net/index.md b/docz/docs/03-demos/03-net/index.md new file mode 100644 index 0000000..377130c --- /dev/null +++ b/docz/docs/03-demos/03-net/index.md @@ -0,0 +1,25 @@ +--- +title: Servers and Remote Data +pagination_prev: demos/grid/index +pagination_next: demos/static/index +--- + +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + +SheetJS libraries are commonly used in data pipelines for processing personally +identifiable information (PII). The libraries never attempt to perform network +requests and never collect telemetry. + +In practice, there are many interesting networking use cases including server +processing of user-submitted files and fetching files from an external source. +The demos in this section cover common use cases: + +
    {useCurrentSidebarCategory().items.map((item, index) => { + const listyle = (item.customProps?.icon) ? { + listStyleImage: `url("${item.customProps.icon}")` + } : {}; + return (
  • + {item.label}{item.customProps?.summary && (" - " + item.customProps.summary)} +
  • ); +})}
diff --git a/docz/docs/03-demos/04-cloud/_category_.json b/docz/docs/03-demos/04-cloud/_category_.json deleted file mode 100644 index 78c3007..0000000 --- a/docz/docs/03-demos/04-cloud/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "label": "Cloud Platforms", - "position": 4, - "collapsed": false -} \ No newline at end of file diff --git a/docz/docs/03-demos/11-static/01-lume.md b/docz/docs/03-demos/04-static/01-lume.md similarity index 96% rename from docz/docs/03-demos/11-static/01-lume.md rename to docz/docs/03-demos/04-static/01-lume.md index 384599b..11d7fba 100644 --- a/docz/docs/03-demos/11-static/01-lume.md +++ b/docz/docs/03-demos/04-static/01-lume.md @@ -1,7 +1,7 @@ --- title: Lume -pagination_prev: demos/extensions/index -pagination_next: demos/cli +pagination_prev: demos/net/index +pagination_next: demos/mobile/index sidebar_custom_props: type: native --- diff --git a/docz/docs/03-demos/11-static/02-gatsbyjs.md b/docz/docs/03-demos/04-static/02-gatsbyjs.md similarity index 99% rename from docz/docs/03-demos/11-static/02-gatsbyjs.md rename to docz/docs/03-demos/04-static/02-gatsbyjs.md index 1119955..777f104 100644 --- a/docz/docs/03-demos/11-static/02-gatsbyjs.md +++ b/docz/docs/03-demos/04-static/02-gatsbyjs.md @@ -1,7 +1,7 @@ --- title: GatsbyJS -pagination_prev: demos/extensions/index -pagination_next: demos/cli +pagination_prev: demos/net/index +pagination_next: demos/mobile/index sidebar_custom_props: type: native --- diff --git a/docz/docs/03-demos/11-static/05-vitejs.md b/docz/docs/03-demos/04-static/05-vitejs.md similarity index 99% rename from docz/docs/03-demos/11-static/05-vitejs.md rename to docz/docs/03-demos/04-static/05-vitejs.md index c32ea5a..853d395 100644 --- a/docz/docs/03-demos/11-static/05-vitejs.md +++ b/docz/docs/03-demos/04-static/05-vitejs.md @@ -1,7 +1,7 @@ --- title: ViteJS -pagination_prev: demos/extensions/index -pagination_next: demos/cli +pagination_prev: demos/net/index +pagination_next: demos/mobile/index sidebar_custom_props: type: bundler --- diff --git a/docz/docs/03-demos/11-static/08-nextjs.md b/docz/docs/03-demos/04-static/08-nextjs.md similarity index 99% rename from docz/docs/03-demos/11-static/08-nextjs.md rename to docz/docs/03-demos/04-static/08-nextjs.md index 41a2716..f5bb2ff 100644 --- a/docz/docs/03-demos/11-static/08-nextjs.md +++ b/docz/docs/03-demos/04-static/08-nextjs.md @@ -1,7 +1,7 @@ --- title: NextJS -pagination_prev: demos/extensions/index -pagination_next: demos/cli +pagination_prev: demos/net/index +pagination_next: demos/mobile/index --- :::note diff --git a/docz/docs/03-demos/11-static/09-nuxtjs.md b/docz/docs/03-demos/04-static/09-nuxtjs.md similarity index 97% rename from docz/docs/03-demos/11-static/09-nuxtjs.md rename to docz/docs/03-demos/04-static/09-nuxtjs.md index f1b1360..59545b5 100644 --- a/docz/docs/03-demos/11-static/09-nuxtjs.md +++ b/docz/docs/03-demos/04-static/09-nuxtjs.md @@ -1,22 +1,12 @@ --- title: NuxtJS -pagination_prev: demos/extensions/index -pagination_next: demos/cli +pagination_prev: demos/net/index +pagination_next: demos/mobile/index --- `@nuxt/content` is a file-based CMS for Nuxt, enabling static-site generation and on-demand server rendering powered by spreadsheets. -:::warning - -Nuxt Content `v2` (NuxtJS `v3`) employs a different architecture from `v1`. -There are known bugs related to corrupted binary spreadsheet files. - -Greenfield projects should stick to the stable NuxtJS + Nuxt Content versions -until the issues are resolved. - -::: - ## Nuxt Content v1 :::note diff --git a/docz/docs/03-demos/11-static/10-astro.md b/docz/docs/03-demos/04-static/10-astro.md similarity index 98% rename from docz/docs/03-demos/11-static/10-astro.md rename to docz/docs/03-demos/04-static/10-astro.md index eaa4ca3..b97ac2c 100644 --- a/docz/docs/03-demos/11-static/10-astro.md +++ b/docz/docs/03-demos/04-static/10-astro.md @@ -1,7 +1,7 @@ --- title: AstroJS -pagination_prev: demos/extensions/index -pagination_next: demos/cli +pagination_prev: demos/net/index +pagination_next: demos/mobile/index --- :::note diff --git a/docz/docs/03-demos/11-static/_category_.json b/docz/docs/03-demos/04-static/_category_.json similarity index 69% rename from docz/docs/03-demos/11-static/_category_.json rename to docz/docs/03-demos/04-static/_category_.json index 63b54c4..db4d3fc 100644 --- a/docz/docs/03-demos/11-static/_category_.json +++ b/docz/docs/03-demos/04-static/_category_.json @@ -1,4 +1,4 @@ { "label": "Content and Static Sites", - "position": 11 + "position": 4 } \ No newline at end of file diff --git a/docz/docs/03-demos/11-static/index.md b/docz/docs/03-demos/04-static/index.md similarity index 97% rename from docz/docs/03-demos/11-static/index.md rename to docz/docs/03-demos/04-static/index.md index ef31b5a..f4bc127 100644 --- a/docz/docs/03-demos/11-static/index.md +++ b/docz/docs/03-demos/04-static/index.md @@ -1,7 +1,7 @@ --- title: Content and Static Sites -pagination_prev: demos/extensions/index -pagination_next: demos/cli +pagination_prev: demos/net/index +pagination_next: demos/mobile/index --- import DocCardList from '@theme/DocCardList'; diff --git a/docz/docs/03-demos/02-mobile/01-reactnative.md b/docz/docs/03-demos/05-mobile/01-reactnative.md similarity index 99% rename from docz/docs/03-demos/02-mobile/01-reactnative.md rename to docz/docs/03-demos/05-mobile/01-reactnative.md index 5672b3a..eb4aa04 100644 --- a/docz/docs/03-demos/02-mobile/01-reactnative.md +++ b/docz/docs/03-demos/05-mobile/01-reactnative.md @@ -1,6 +1,6 @@ --- title: React Native -pagination_prev: demos/frontend/index +pagination_prev: demos/static/index pagination_next: demos/desktop/index sidebar_position: 1 sidebar_custom_props: diff --git a/docz/docs/03-demos/02-mobile/02-nativescript.md b/docz/docs/03-demos/05-mobile/02-nativescript.md similarity index 99% rename from docz/docs/03-demos/02-mobile/02-nativescript.md rename to docz/docs/03-demos/05-mobile/02-nativescript.md index 9bde775..4d1680f 100644 --- a/docz/docs/03-demos/02-mobile/02-nativescript.md +++ b/docz/docs/03-demos/05-mobile/02-nativescript.md @@ -1,6 +1,6 @@ --- title: NativeScript -pagination_prev: demos/frontend/index +pagination_prev: demos/static/index pagination_next: demos/desktop/index sidebar_position: 2 sidebar_custom_props: diff --git a/docz/docs/03-demos/02-mobile/03-quasar.md b/docz/docs/03-demos/05-mobile/03-quasar.md similarity index 99% rename from docz/docs/03-demos/02-mobile/03-quasar.md rename to docz/docs/03-demos/05-mobile/03-quasar.md index 65440c4..ea54dc7 100644 --- a/docz/docs/03-demos/02-mobile/03-quasar.md +++ b/docz/docs/03-demos/05-mobile/03-quasar.md @@ -1,6 +1,6 @@ --- title: Quasar -pagination_prev: demos/frontend/index +pagination_prev: demos/static/index pagination_next: demos/desktop/index sidebar_position: 3 sidebar_custom_props: diff --git a/docz/docs/03-demos/02-mobile/04-ionic.md b/docz/docs/03-demos/05-mobile/04-ionic.md similarity index 98% rename from docz/docs/03-demos/02-mobile/04-ionic.md rename to docz/docs/03-demos/05-mobile/04-ionic.md index f397c8e..6b8ac7a 100644 --- a/docz/docs/03-demos/02-mobile/04-ionic.md +++ b/docz/docs/03-demos/05-mobile/04-ionic.md @@ -1,6 +1,6 @@ --- title: Ionic -pagination_prev: demos/frontend/index +pagination_prev: demos/static/index pagination_next: demos/desktop/index sidebar_position: 4 sidebar_custom_props: diff --git a/docz/docs/03-demos/02-mobile/05-capacitor.md b/docz/docs/03-demos/05-mobile/05-capacitor.md similarity index 99% rename from docz/docs/03-demos/02-mobile/05-capacitor.md rename to docz/docs/03-demos/05-mobile/05-capacitor.md index 0c35374..055b677 100644 --- a/docz/docs/03-demos/02-mobile/05-capacitor.md +++ b/docz/docs/03-demos/05-mobile/05-capacitor.md @@ -1,6 +1,6 @@ --- title: CapacitorJS -pagination_prev: demos/frontend/index +pagination_prev: demos/static/index pagination_next: demos/desktop/index sidebar_position: 5 sidebar_custom_props: diff --git a/docz/docs/03-demos/02-mobile/_category_.json b/docz/docs/03-demos/05-mobile/_category_.json similarity index 64% rename from docz/docs/03-demos/02-mobile/_category_.json rename to docz/docs/03-demos/05-mobile/_category_.json index 4295678..d27716f 100644 --- a/docz/docs/03-demos/02-mobile/_category_.json +++ b/docz/docs/03-demos/05-mobile/_category_.json @@ -1,4 +1,4 @@ { "label": "iOS and Android Apps", - "position": 2 + "position": 5 } \ No newline at end of file diff --git a/docz/docs/03-demos/02-mobile/index.md b/docz/docs/03-demos/05-mobile/index.md similarity index 98% rename from docz/docs/03-demos/02-mobile/index.md rename to docz/docs/03-demos/05-mobile/index.md index 0c94e05..7329d80 100644 --- a/docz/docs/03-demos/02-mobile/index.md +++ b/docz/docs/03-demos/05-mobile/index.md @@ -1,6 +1,6 @@ --- title: iOS and Android Apps -pagination_prev: demos/frontend/index +pagination_prev: demos/static/index pagination_next: demos/desktop/index --- diff --git a/docz/docs/03-demos/06-data/_category_.json b/docz/docs/03-demos/06-data/_category_.json deleted file mode 100644 index 119bcd9..0000000 --- a/docz/docs/03-demos/06-data/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "label": "Databases and Stores", - "position": 6, - "collapsed": false -} \ No newline at end of file diff --git a/docz/docs/03-demos/03-desktop/01-electron.md b/docz/docs/03-demos/06-desktop/01-electron.md similarity index 99% rename from docz/docs/03-demos/03-desktop/01-electron.md rename to docz/docs/03-demos/06-desktop/01-electron.md index 0459014..35f95dd 100644 --- a/docz/docs/03-demos/03-desktop/01-electron.md +++ b/docz/docs/03-demos/06-desktop/01-electron.md @@ -1,7 +1,7 @@ --- title: Electron pagination_prev: demos/mobile/index -pagination_next: demos/cloud/index +pagination_next: demos/data/index sidebar_position: 1 sidebar_custom_props: summary: Embedded NodeJS + Chromium diff --git a/docz/docs/03-demos/03-desktop/02-nwjs.md b/docz/docs/03-demos/06-desktop/02-nwjs.md similarity index 98% rename from docz/docs/03-demos/03-desktop/02-nwjs.md rename to docz/docs/03-demos/06-desktop/02-nwjs.md index 9bdbc27..9160f31 100644 --- a/docz/docs/03-demos/03-desktop/02-nwjs.md +++ b/docz/docs/03-demos/06-desktop/02-nwjs.md @@ -1,7 +1,7 @@ --- title: NW.js pagination_prev: demos/mobile/index -pagination_next: demos/cloud/index +pagination_next: demos/data/index sidebar_position: 2 sidebar_custom_props: summary: Embedded Chromium + NodeJS diff --git a/docz/docs/03-demos/03-desktop/03-wails.md b/docz/docs/03-demos/06-desktop/03-wails.md similarity index 99% rename from docz/docs/03-demos/03-desktop/03-wails.md rename to docz/docs/03-demos/06-desktop/03-wails.md index ef3cb3a..3840e58 100644 --- a/docz/docs/03-demos/03-desktop/03-wails.md +++ b/docz/docs/03-demos/06-desktop/03-wails.md @@ -1,7 +1,7 @@ --- title: Wails pagination_prev: demos/mobile/index -pagination_next: demos/cloud/index +pagination_next: demos/data/index sidebar_position: 3 sidebar_custom_props: summary: Webview + Go Backend diff --git a/docz/docs/03-demos/03-desktop/04-tauri.md b/docz/docs/03-demos/06-desktop/04-tauri.md similarity index 99% rename from docz/docs/03-demos/03-desktop/04-tauri.md rename to docz/docs/03-demos/06-desktop/04-tauri.md index 77eb24b..669764f 100644 --- a/docz/docs/03-demos/03-desktop/04-tauri.md +++ b/docz/docs/03-demos/06-desktop/04-tauri.md @@ -1,7 +1,7 @@ --- title: Tauri pagination_prev: demos/mobile/index -pagination_next: demos/cloud/index +pagination_next: demos/data/index sidebar_position: 4 sidebar_custom_props: summary: Webview + Rust Backend diff --git a/docz/docs/03-demos/03-desktop/05-neutralino.md b/docz/docs/03-demos/06-desktop/05-neutralino.md similarity index 99% rename from docz/docs/03-demos/03-desktop/05-neutralino.md rename to docz/docs/03-demos/06-desktop/05-neutralino.md index 06270b1..dace6c4 100644 --- a/docz/docs/03-demos/03-desktop/05-neutralino.md +++ b/docz/docs/03-demos/06-desktop/05-neutralino.md @@ -1,7 +1,7 @@ --- title: NeutralinoJS pagination_prev: demos/mobile/index -pagination_next: demos/cloud/index +pagination_next: demos/data/index sidebar_position: 5 sidebar_custom_props: summary: Webview + Lightweight Extensions diff --git a/docz/docs/03-demos/03-desktop/06-reactnative.md b/docz/docs/03-demos/06-desktop/06-reactnative.md similarity index 99% rename from docz/docs/03-demos/03-desktop/06-reactnative.md rename to docz/docs/03-demos/06-desktop/06-reactnative.md index 75472e9..91bec60 100644 --- a/docz/docs/03-demos/03-desktop/06-reactnative.md +++ b/docz/docs/03-demos/06-desktop/06-reactnative.md @@ -1,7 +1,7 @@ --- title: React Native pagination_prev: demos/mobile/index -pagination_next: demos/cloud/index +pagination_next: demos/data/index sidebar_position: 6 sidebar_custom_props: summary: Native Components with React diff --git a/docz/docs/03-demos/27-cli.md b/docz/docs/03-demos/06-desktop/09-cli.md similarity index 95% rename from docz/docs/03-demos/27-cli.md rename to docz/docs/03-demos/06-desktop/09-cli.md index e499d93..a01c620 100644 --- a/docz/docs/03-demos/27-cli.md +++ b/docz/docs/03-demos/06-desktop/09-cli.md @@ -1,7 +1,9 @@ --- title: Command-Line Tools -pagination_prev: demos/static/index -pagination_next: demos/engines/index +pagination_prev: demos/mobile/index +pagination_next: demos/data/index +sidebar_custom_props: + cli: true --- import current from '/version.js'; @@ -106,7 +108,7 @@ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz exit-on-epi -3) Run `nexe` and manually specify NodeJS version 14.15.3 +Run `nexe` and manually specify NodeJS version 14.15.3 ```bash npx nexe -t 14.15.3 xlsx-cli.js @@ -117,7 +119,7 @@ This generates `xlsx-cli` or `xlsx-cli.exe` depending on platform. -3) Run `pkg`: +Run `pkg`: ```bash npx pkg xlsx-cli.js diff --git a/docz/docs/03-demos/06-desktop/_category_.json b/docz/docs/03-demos/06-desktop/_category_.json new file mode 100644 index 0000000..974109c --- /dev/null +++ b/docz/docs/03-demos/06-desktop/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Desktop and CLI Tools", + "position": 6 +} diff --git a/docz/docs/03-demos/03-desktop/index.md b/docz/docs/03-demos/06-desktop/index.md similarity index 59% rename from docz/docs/03-demos/03-desktop/index.md rename to docz/docs/03-demos/06-desktop/index.md index e7f34ca..7757350 100644 --- a/docz/docs/03-demos/03-desktop/index.md +++ b/docz/docs/03-demos/06-desktop/index.md @@ -1,7 +1,7 @@ --- -title: Desktop Applications +title: Desktop and CLI Tools pagination_prev: demos/mobile/index -pagination_next: demos/cloud/index +pagination_next: demos/data/index --- import DocCardList from '@theme/DocCardList'; @@ -11,9 +11,9 @@ Web technologies like JavaScript and HTML have been adapted to the traditional app space. Typically these frameworks bundle a JavaScript engine as well as a windowing framework. SheetJS is compatible with many app frameworks. -Demos for common tools are included in separate pages: +Demos for common desktop tools are included in separate pages: -
    {useCurrentSidebarCategory().items.map((item, index) => { +
      {useCurrentSidebarCategory().items.filter(item => !item.customProps?.cli).map((item, index) => { const listyle = (item.customProps?.icon) ? { listStyleImage: `url("${item.customProps.icon}")` } : {}; @@ -22,7 +22,18 @@ Demos for common tools are included in separate pages: ); })}
    -:::note Recommendation +Demos for common command-line tools are included in separate pages: + +
      {useCurrentSidebarCategory().items.filter(item => item.customProps?.cli).map((item, index) => { + const listyle = (item.customProps?.icon) ? { + listStyleImage: `url("${item.customProps.icon}")` + } : {}; + return (
    • + {item.label}{item.customProps?.summary && (" - " + item.customProps.summary)} +
    • ); +})}
    + +:::note Desktop Recommendation Electron is the most established and widely-used framework. With deep support for NodeJS modules and consistent user interfaces, it is the recommended choice @@ -34,4 +45,3 @@ other programming languages. Frameworks like React Native generate applications that use native UI elements. ::: - diff --git a/docz/docs/03-demos/06-data/01-websql.md b/docz/docs/03-demos/07-data/01-websql.md similarity index 99% rename from docz/docs/03-demos/06-data/01-websql.md rename to docz/docs/03-demos/07-data/01-websql.md index d65ee71..9ef9ce5 100644 --- a/docz/docs/03-demos/06-data/01-websql.md +++ b/docz/docs/03-demos/07-data/01-websql.md @@ -1,7 +1,7 @@ --- title: WebSQL and SQLite -pagination_prev: demos/grid -pagination_next: demos/worker +pagination_prev: demos/desktop/index +pagination_next: demos/local/index sidebar_custom_props: type: web sql: true diff --git a/docz/docs/03-demos/06-data/02-storageapi.md b/docz/docs/03-demos/07-data/02-storageapi.md similarity index 97% rename from docz/docs/03-demos/06-data/02-storageapi.md rename to docz/docs/03-demos/07-data/02-storageapi.md index 43097ae..66e0b2f 100644 --- a/docz/docs/03-demos/06-data/02-storageapi.md +++ b/docz/docs/03-demos/07-data/02-storageapi.md @@ -1,7 +1,7 @@ --- title: Local Storage API -pagination_prev: demos/grid -pagination_next: demos/worker +pagination_prev: demos/desktop/index +pagination_next: demos/local/index sidebar_custom_props: type: web --- @@ -122,7 +122,7 @@ function SheetJStorage() { }); return ( <> - {out && (<>{url}
    {out}
    )} + {out && ( <>{url}
    {out}
    )} URL:
    ); diff --git a/docz/docs/03-demos/06-data/03-indexeddb.md b/docz/docs/03-demos/07-data/03-indexeddb.md similarity index 98% rename from docz/docs/03-demos/06-data/03-indexeddb.md rename to docz/docs/03-demos/07-data/03-indexeddb.md index c034ec8..8a5fb25 100644 --- a/docz/docs/03-demos/06-data/03-indexeddb.md +++ b/docz/docs/03-demos/07-data/03-indexeddb.md @@ -1,7 +1,7 @@ --- title: IndexedDB API -pagination_prev: demos/grid -pagination_next: demos/worker +pagination_prev: demos/desktop/index +pagination_next: demos/local/index sidebar_custom_props: type: web --- @@ -144,7 +144,7 @@ fetches the data from the first worksheet in reverse: function SheetJSDexieImport(props) { const [__html, setHTML] = React.useState("Select a spreadsheet"); - return (<> + return ( <> { try { /* get data as an ArrayBuffer */ const file = e.target.files[0]; @@ -177,7 +177,7 @@ function SheetJSDexieImport(props) { setHTML(rev.map(r => JSON.stringify(r)).join("\n")); } catch(e) { setHTML(e && e.message || e); }}}/>
    -  );
    +   );
     }
     ```
     
    diff --git a/docz/docs/03-demos/06-data/09-alasql.md b/docz/docs/03-demos/07-data/09-alasql.md
    similarity index 97%
    rename from docz/docs/03-demos/06-data/09-alasql.md
    rename to docz/docs/03-demos/07-data/09-alasql.md
    index b16fa21..8b36434 100644
    --- a/docz/docs/03-demos/06-data/09-alasql.md
    +++ b/docz/docs/03-demos/07-data/09-alasql.md
    @@ -1,7 +1,7 @@
     ---
     title: AlaSQL
    -pagination_prev: demos/grid
    -pagination_next: demos/worker
    +pagination_prev: demos/desktop/index
    +pagination_next: demos/local/index
     sidebar_custom_props:
       sql: true
     ---
    diff --git a/docz/docs/03-demos/06-data/10-sql.md b/docz/docs/03-demos/07-data/10-sql.md
    similarity index 98%
    rename from docz/docs/03-demos/06-data/10-sql.md
    rename to docz/docs/03-demos/07-data/10-sql.md
    index 94e1a46..3200c23 100644
    --- a/docz/docs/03-demos/06-data/10-sql.md
    +++ b/docz/docs/03-demos/07-data/10-sql.md
    @@ -1,7 +1,7 @@
     ---
     title: SQL Connectors
    -pagination_prev: demos/grid
    -pagination_next: demos/worker
    +pagination_prev: demos/desktop/index
    +pagination_next: demos/local/index
     sidebar_custom_props:
       sql: true
     ---
    @@ -127,7 +127,7 @@ function SheetJSQLWriter() {
         setOut(generate_sql(wb.Sheets[wsname], wsname).join("\n"));
       });
     
    -  return ( <> {out && (<>{url}
    {out}
    )} + return ( <> {out && ( <>{url}
    {out}
    )} URL:
    ); diff --git a/docz/docs/03-demos/06-data/25-mongodb.md b/docz/docs/03-demos/07-data/25-mongodb.md similarity index 97% rename from docz/docs/03-demos/06-data/25-mongodb.md rename to docz/docs/03-demos/07-data/25-mongodb.md index e3b2450..c604364 100644 --- a/docz/docs/03-demos/06-data/25-mongodb.md +++ b/docz/docs/03-demos/07-data/25-mongodb.md @@ -1,7 +1,7 @@ --- title: MongoDB -pagination_prev: demos/grid -pagination_next: demos/worker +pagination_prev: demos/desktop/index +pagination_next: demos/local/index sidebar_custom_props: type: document --- diff --git a/docz/docs/03-demos/06-data/26-redis.md b/docz/docs/03-demos/07-data/26-redis.md similarity index 98% rename from docz/docs/03-demos/06-data/26-redis.md rename to docz/docs/03-demos/07-data/26-redis.md index 41b4ea5..309afee 100644 --- a/docz/docs/03-demos/06-data/26-redis.md +++ b/docz/docs/03-demos/07-data/26-redis.md @@ -1,7 +1,7 @@ --- title: Redis -pagination_prev: demos/grid -pagination_next: demos/worker +pagination_prev: demos/desktop/index +pagination_next: demos/local/index sidebar_custom_props: type: nosql --- diff --git a/docz/docs/03-demos/06-data/29-pouchdb.md b/docz/docs/03-demos/07-data/29-pouchdb.md similarity index 97% rename from docz/docs/03-demos/06-data/29-pouchdb.md rename to docz/docs/03-demos/07-data/29-pouchdb.md index c8c2b0d..2f57d83 100644 --- a/docz/docs/03-demos/06-data/29-pouchdb.md +++ b/docz/docs/03-demos/07-data/29-pouchdb.md @@ -1,7 +1,7 @@ --- title: PouchDB -pagination_prev: demos/grid -pagination_next: demos/worker +pagination_prev: demos/desktop/index +pagination_next: demos/local/index sidebar_custom_props: type: nosql --- diff --git a/docz/docs/03-demos/07-data/_category_.json b/docz/docs/03-demos/07-data/_category_.json new file mode 100644 index 0000000..9757d22 --- /dev/null +++ b/docz/docs/03-demos/07-data/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Databases and Stores", + "position": 7 +} \ No newline at end of file diff --git a/docz/docs/03-demos/06-data/index.md b/docz/docs/03-demos/07-data/index.md similarity index 98% rename from docz/docs/03-demos/06-data/index.md rename to docz/docs/03-demos/07-data/index.md index b1211d0..07e9875 100644 --- a/docz/docs/03-demos/06-data/index.md +++ b/docz/docs/03-demos/07-data/index.md @@ -1,7 +1,7 @@ --- title: Databases and Stores -pagination_prev: demos/grid -pagination_next: demos/worker +pagination_prev: demos/desktop/index +pagination_next: demos/local/index --- import DocCardList from '@theme/DocCardList'; diff --git a/docz/docs/03-demos/33-localfile.md b/docz/docs/03-demos/08-local/01-file.md similarity index 98% rename from docz/docs/03-demos/33-localfile.md rename to docz/docs/03-demos/08-local/01-file.md index 1915664..e0234ac 100644 --- a/docz/docs/03-demos/33-localfile.md +++ b/docz/docs/03-demos/08-local/01-file.md @@ -1,5 +1,9 @@ --- title: Local File Access +pagination_prev: demos/data/index +pagination_next: demos/cloud/index +sidebar_custom_props: + summary: Reading and writing files using various platform APIs --- Reading and writing files require native platform support. `XLSX.readFile` and diff --git a/docz/docs/03-demos/32-clipboard.md b/docz/docs/03-demos/08-local/05-clipboard.md similarity index 94% rename from docz/docs/03-demos/32-clipboard.md rename to docz/docs/03-demos/08-local/05-clipboard.md index ae855da..524ce7d 100644 --- a/docz/docs/03-demos/32-clipboard.md +++ b/docz/docs/03-demos/08-local/05-clipboard.md @@ -1,6 +1,9 @@ --- title: Clipboard Data -pagination_prev: demos/engines/index +pagination_prev: demos/data/index +pagination_next: demos/cloud/index +sidebar_custom_props: + summary: Reading and writing data and files in the clipboard --- Spreadsheet software like Excel typically support copying and pasting cells and diff --git a/docz/docs/03-demos/08-local/_category_.json b/docz/docs/03-demos/08-local/_category_.json new file mode 100644 index 0000000..3e07617 --- /dev/null +++ b/docz/docs/03-demos/08-local/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Local Data", + "position": 8 +} \ No newline at end of file diff --git a/docz/docs/03-demos/08-local/index.md b/docz/docs/03-demos/08-local/index.md new file mode 100644 index 0000000..86e56c8 --- /dev/null +++ b/docz/docs/03-demos/08-local/index.md @@ -0,0 +1,24 @@ +--- +title: Local Data +pagination_prev: demos/data/index +pagination_next: demos/cloud/index +--- + +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + +There is no standard cross-platform approach to read and write files and data. +`XLSX.readFile` and `XLSX.writeFile` rely on platform-specific APIs to perform +the file read and write operations. Not all platforms support the APIs used in +the library. + +The demos in this section cover APIs that are not supported out-of-the-box: + +
      {useCurrentSidebarCategory().items.map((item, index) => { + const listyle = (item.customProps?.icon) ? { + listStyleImage: `url("${item.customProps.icon}")` + } : {}; + return (
    • + {item.label}{item.customProps?.summary && (" - " + item.customProps.summary)} +
    • ); +})}
    diff --git a/docz/docs/03-demos/04-cloud/01-salesforce.md b/docz/docs/03-demos/09-cloud/01-salesforce.md similarity index 99% rename from docz/docs/03-demos/04-cloud/01-salesforce.md rename to docz/docs/03-demos/09-cloud/01-salesforce.md index 4f1ff54..dcaec89 100644 --- a/docz/docs/03-demos/04-cloud/01-salesforce.md +++ b/docz/docs/03-demos/09-cloud/01-salesforce.md @@ -1,7 +1,7 @@ --- title: Salesforce LWC -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- Salesforce apps can use third-party libraries in "Lightning Web Components". diff --git a/docz/docs/03-demos/04-cloud/02-aws.md b/docz/docs/03-demos/09-cloud/02-aws.md similarity index 98% rename from docz/docs/03-demos/04-cloud/02-aws.md rename to docz/docs/03-demos/09-cloud/02-aws.md index 793dc64..196da71 100644 --- a/docz/docs/03-demos/04-cloud/02-aws.md +++ b/docz/docs/03-demos/09-cloud/02-aws.md @@ -1,7 +1,7 @@ --- title: Amazon Web Services -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- AWS is a Cloud Services platform which includes traditional virtual machine diff --git a/docz/docs/03-demos/04-cloud/03-gsheet.md b/docz/docs/03-demos/09-cloud/03-gsheet.md similarity index 95% rename from docz/docs/03-demos/04-cloud/03-gsheet.md rename to docz/docs/03-demos/09-cloud/03-gsheet.md index a70f21b..d6d6731 100644 --- a/docz/docs/03-demos/04-cloud/03-gsheet.md +++ b/docz/docs/03-demos/09-cloud/03-gsheet.md @@ -1,7 +1,7 @@ --- title: Google Sheets -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- import Tabs from '@theme/Tabs'; diff --git a/docz/docs/03-demos/04-cloud/04-netsuite.md b/docz/docs/03-demos/09-cloud/04-netsuite.md similarity index 97% rename from docz/docs/03-demos/04-cloud/04-netsuite.md rename to docz/docs/03-demos/09-cloud/04-netsuite.md index f1a8724..c705a12 100644 --- a/docz/docs/03-demos/04-cloud/04-netsuite.md +++ b/docz/docs/03-demos/09-cloud/04-netsuite.md @@ -1,7 +1,7 @@ --- title: NetSuite -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- This demo discusses the key SheetJS operations. Familiarity with SuiteScript 2 diff --git a/docz/docs/03-demos/04-cloud/05-dropbox.mdx b/docz/docs/03-demos/09-cloud/05-dropbox.mdx similarity index 98% rename from docz/docs/03-demos/04-cloud/05-dropbox.mdx rename to docz/docs/03-demos/09-cloud/05-dropbox.mdx index 5317251..f71b013 100644 --- a/docz/docs/03-demos/04-cloud/05-dropbox.mdx +++ b/docz/docs/03-demos/09-cloud/05-dropbox.mdx @@ -1,7 +1,7 @@ --- title: Dropbox -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- diff --git a/docz/docs/03-demos/04-cloud/08-airtable.md b/docz/docs/03-demos/09-cloud/08-airtable.md similarity index 97% rename from docz/docs/03-demos/04-cloud/08-airtable.md rename to docz/docs/03-demos/09-cloud/08-airtable.md index 17fd292..1ea1bd5 100644 --- a/docz/docs/03-demos/04-cloud/08-airtable.md +++ b/docz/docs/03-demos/09-cloud/08-airtable.md @@ -1,7 +1,7 @@ --- title: Airtable -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- Airtable recommends Personal Access Tokens for interacting with their API. When diff --git a/docz/docs/03-demos/04-cloud/09-azure.md b/docz/docs/03-demos/09-cloud/09-azure.md similarity index 99% rename from docz/docs/03-demos/04-cloud/09-azure.md rename to docz/docs/03-demos/09-cloud/09-azure.md index 1417b88..17151b9 100644 --- a/docz/docs/03-demos/04-cloud/09-azure.md +++ b/docz/docs/03-demos/09-cloud/09-azure.md @@ -1,7 +1,7 @@ --- title: Azure Cloud Services -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- Azure is a Cloud Services platform which includes traditional virtual machine diff --git a/docz/docs/03-demos/04-cloud/10-github.md b/docz/docs/03-demos/09-cloud/10-github.md similarity index 99% rename from docz/docs/03-demos/04-cloud/10-github.md rename to docz/docs/03-demos/09-cloud/10-github.md index 34ae812..21e87f6 100644 --- a/docz/docs/03-demos/04-cloud/10-github.md +++ b/docz/docs/03-demos/09-cloud/10-github.md @@ -1,7 +1,7 @@ --- title: GitHub -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- Many official data releases by governments and organizations include XLSX or diff --git a/docz/docs/03-demos/09-cloud/_category_.json b/docz/docs/03-demos/09-cloud/_category_.json new file mode 100644 index 0000000..5d81b5a --- /dev/null +++ b/docz/docs/03-demos/09-cloud/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Cloud Platforms", + "position": 9 +} \ No newline at end of file diff --git a/docz/docs/03-demos/04-cloud/index.md b/docz/docs/03-demos/09-cloud/index.md similarity index 96% rename from docz/docs/03-demos/04-cloud/index.md rename to docz/docs/03-demos/09-cloud/index.md index 821e499..3bbfe8e 100644 --- a/docz/docs/03-demos/04-cloud/index.md +++ b/docz/docs/03-demos/09-cloud/index.md @@ -1,7 +1,7 @@ --- title: Cloud Platforms -pagination_prev: demos/desktop/index -pagination_next: demos/grid +pagination_prev: demos/local/index +pagination_next: demos/extensions/index --- import DocCardList from '@theme/DocCardList'; diff --git a/docz/docs/03-demos/10-extensions/01-extendscript.md b/docz/docs/03-demos/10-extensions/01-extendscript.md index 58a63e6..ec99b64 100644 --- a/docz/docs/03-demos/10-extensions/01-extendscript.md +++ b/docz/docs/03-demos/10-extensions/01-extendscript.md @@ -1,7 +1,7 @@ --- title: Photoshop and Creative Suite -pagination_prev: demos/server -pagination_next: demos/static/index +pagination_prev: demos/cloud/index +pagination_next: demos/bigdata/index --- import Tabs from '@theme/Tabs'; diff --git a/docz/docs/03-demos/10-extensions/02-chromium.md b/docz/docs/03-demos/10-extensions/02-chromium.md index 190be42..bf578bf 100644 --- a/docz/docs/03-demos/10-extensions/02-chromium.md +++ b/docz/docs/03-demos/10-extensions/02-chromium.md @@ -1,7 +1,7 @@ --- title: Chrome and Chromium -pagination_prev: demos/server -pagination_next: demos/static/index +pagination_prev: demos/cloud/index +pagination_next: demos/bigdata/index --- :::warning diff --git a/docz/docs/03-demos/10-extensions/03-excelapi.md b/docz/docs/03-demos/10-extensions/03-excelapi.md index 9019700..60194da 100644 --- a/docz/docs/03-demos/10-extensions/03-excelapi.md +++ b/docz/docs/03-demos/10-extensions/03-excelapi.md @@ -1,7 +1,7 @@ --- title: Excel JavaScript API -pagination_prev: demos/server -pagination_next: demos/static/index +pagination_prev: demos/cloud/index +pagination_next: demos/bigdata/index --- :::info diff --git a/docz/docs/03-demos/10-extensions/_category_.json b/docz/docs/03-demos/10-extensions/_category_.json index 6cac06b..be66d80 100644 --- a/docz/docs/03-demos/10-extensions/_category_.json +++ b/docz/docs/03-demos/10-extensions/_category_.json @@ -1,5 +1,4 @@ { "label": "App Extensions", - "position": 10, - "collapsed": false + "position": 10 } \ No newline at end of file diff --git a/docz/docs/03-demos/10-extensions/index.md b/docz/docs/03-demos/10-extensions/index.md index 72f2dfb..183ac64 100644 --- a/docz/docs/03-demos/10-extensions/index.md +++ b/docz/docs/03-demos/10-extensions/index.md @@ -1,7 +1,7 @@ --- title: Extensions -pagination_prev: demos/server -pagination_next: demos/static/index +pagination_prev: demos/cloud/index +pagination_next: demos/bigdata/index --- import DocCardList from '@theme/DocCardList'; diff --git a/docz/docs/03-demos/08-stream.md b/docz/docs/03-demos/11-bigdata/01-stream.md similarity index 98% rename from docz/docs/03-demos/08-stream.md rename to docz/docs/03-demos/11-bigdata/01-stream.md index 00d5bfe..456dd2b 100644 --- a/docz/docs/03-demos/08-stream.md +++ b/docz/docs/03-demos/11-bigdata/01-stream.md @@ -1,5 +1,9 @@ --- title: Large Datasets +pagination_prev: demos/extensions/index +pagination_next: demos/engines/index +sidebar_custom_props: + summary: Dense Mode + Incremental CSV / HTML / JSON Export --- For maximal compatibility, the library reads entire files at once and generates diff --git a/docz/docs/03-demos/07-worker.md b/docz/docs/03-demos/11-bigdata/02-worker.md similarity index 99% rename from docz/docs/03-demos/07-worker.md rename to docz/docs/03-demos/11-bigdata/02-worker.md index 6d22f85..d836145 100644 --- a/docz/docs/03-demos/07-worker.md +++ b/docz/docs/03-demos/11-bigdata/02-worker.md @@ -1,6 +1,9 @@ --- title: Web Workers -pagination_prev: demos/data/index +pagination_prev: demos/extensions/index +pagination_next: demos/engines/index +sidebar_custom_props: + summary: Run large data flows without freezing the browser --- Parsing and writing large spreadsheets takes time. During the process, if the diff --git a/docz/docs/03-demos/43-ml.mdx b/docz/docs/03-demos/11-bigdata/03-ml.mdx similarity index 98% rename from docz/docs/03-demos/43-ml.mdx rename to docz/docs/03-demos/11-bigdata/03-ml.mdx index 6a8b22b..764421b 100644 --- a/docz/docs/03-demos/43-ml.mdx +++ b/docz/docs/03-demos/11-bigdata/03-ml.mdx @@ -1,5 +1,9 @@ --- title: Typed Arrays and ML +pagination_prev: demos/extensions/index +pagination_next: demos/engines/index +sidebar_custom_props: + summary: Parse and serialize Uint8Array data from TensorFlow --- diff --git a/docz/docs/03-demos/11-bigdata/_category_.json b/docz/docs/03-demos/11-bigdata/_category_.json new file mode 100644 index 0000000..6852b07 --- /dev/null +++ b/docz/docs/03-demos/11-bigdata/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Big Data", + "position": 11 +} \ No newline at end of file diff --git a/docz/docs/03-demos/11-bigdata/index.md b/docz/docs/03-demos/11-bigdata/index.md new file mode 100644 index 0000000..66dec2d --- /dev/null +++ b/docz/docs/03-demos/11-bigdata/index.md @@ -0,0 +1,28 @@ +--- +title: Big Data +pagination_prev: demos/extensions/index +pagination_next: demos/engines/index +--- + +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + +SheetJS demonstrated the value of processing large datasets in the web browser +and other JavaScript environments. SheetJS libraries have pushed the limits of +data processing in the web browser, and some innovations and discoveries have +been integrated into the ReactJS framework and other foundational JS libraries. + +JS Engines have improved over the years, but there are some hard limits to +browser support using traditional methods of data processing. Vendors have +introduced APIs and techniques for representing and processing very large binary +and textual files. Since many of the techniques only work in a few engines, they +are recommended only when the traditional approaches falter: + +
      {useCurrentSidebarCategory().items.map((item, index) => { + const listyle = (item.customProps?.icon) ? { + listStyleImage: `url("${item.customProps.icon}")` + } : {}; + return (
    • + {item.label}{item.customProps?.summary && (" - " + item.customProps.summary)} +
    • ); +})}
    diff --git a/docz/docs/03-demos/31-engines/01_duktape.md b/docz/docs/03-demos/12-engines/01_duktape.md similarity index 99% rename from docz/docs/03-demos/31-engines/01_duktape.md rename to docz/docs/03-demos/12-engines/01_duktape.md index 54132a5..776dc85 100644 --- a/docz/docs/03-demos/31-engines/01_duktape.md +++ b/docz/docs/03-demos/12-engines/01_duktape.md @@ -1,7 +1,7 @@ --- title: C + Duktape -pagination_prev: demos/cli -pagination_next: demos/clipboard +pagination_prev: demos/bigdata/index +pagination_next: solutions/input --- Duktape is an embeddable JS engine written in C. It has been ported to a number diff --git a/docz/docs/03-demos/31-engines/02_jsc.md b/docz/docs/03-demos/12-engines/02_jsc.md similarity index 98% rename from docz/docs/03-demos/31-engines/02_jsc.md rename to docz/docs/03-demos/12-engines/02_jsc.md index 097d6fa..025c325 100644 --- a/docz/docs/03-demos/31-engines/02_jsc.md +++ b/docz/docs/03-demos/12-engines/02_jsc.md @@ -1,7 +1,7 @@ --- title: Swift + JavaScriptCore -pagination_prev: demos/cli -pagination_next: demos/clipboard +pagination_prev: demos/bigdata/index +pagination_next: solutions/input --- iOS and MacOS ship with the JavaScriptCore framework for running JS code from diff --git a/docz/docs/03-demos/31-engines/03_rhino.md b/docz/docs/03-demos/12-engines/03_rhino.md similarity index 98% rename from docz/docs/03-demos/31-engines/03_rhino.md rename to docz/docs/03-demos/12-engines/03_rhino.md index e8ec920..0e42714 100644 --- a/docz/docs/03-demos/31-engines/03_rhino.md +++ b/docz/docs/03-demos/12-engines/03_rhino.md @@ -1,7 +1,7 @@ --- title: Java + Rhino -pagination_prev: demos/cli -pagination_next: demos/clipboard +pagination_prev: demos/bigdata/index +pagination_next: solutions/input --- Rhino is an ES3+ engine in Java. diff --git a/docz/docs/03-demos/31-engines/05_goja.md b/docz/docs/03-demos/12-engines/05_goja.md similarity index 97% rename from docz/docs/03-demos/31-engines/05_goja.md rename to docz/docs/03-demos/12-engines/05_goja.md index a4544e3..db1dfce 100644 --- a/docz/docs/03-demos/31-engines/05_goja.md +++ b/docz/docs/03-demos/12-engines/05_goja.md @@ -1,7 +1,7 @@ --- title: Go + Goja -pagination_prev: demos/cli -pagination_next: demos/clipboard +pagination_prev: demos/bigdata/index +pagination_next: solutions/input --- Goja is a pure Go implementation of ECMAScript 5. diff --git a/docz/docs/03-demos/31-engines/09_rb.md b/docz/docs/03-demos/12-engines/09_rb.md similarity index 97% rename from docz/docs/03-demos/31-engines/09_rb.md rename to docz/docs/03-demos/12-engines/09_rb.md index 10074f0..df01a18 100644 --- a/docz/docs/03-demos/31-engines/09_rb.md +++ b/docz/docs/03-demos/12-engines/09_rb.md @@ -1,7 +1,7 @@ --- title: Ruby + Bindings -pagination_prev: demos/cli -pagination_next: demos/clipboard +pagination_prev: demos/bigdata/index +pagination_next: solutions/input --- ExecJS is a Ruby abstraction over a number of JS runtimes including V8. diff --git a/docz/docs/03-demos/31-engines/11_perl.md b/docz/docs/03-demos/12-engines/11_perl.md similarity index 95% rename from docz/docs/03-demos/31-engines/11_perl.md rename to docz/docs/03-demos/12-engines/11_perl.md index e288b58..a40246f 100644 --- a/docz/docs/03-demos/31-engines/11_perl.md +++ b/docz/docs/03-demos/12-engines/11_perl.md @@ -1,7 +1,7 @@ --- title: Perl + JE -pagination_prev: demos/cli -pagination_next: demos/clipboard +pagination_prev: demos/bigdata/index +pagination_next: solutions/input --- :::warning diff --git a/docz/docs/03-demos/12-engines/_category_.json b/docz/docs/03-demos/12-engines/_category_.json new file mode 100644 index 0000000..f837a62 --- /dev/null +++ b/docz/docs/03-demos/12-engines/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Other Languages", + "position": 12 +} \ No newline at end of file diff --git a/docz/docs/03-demos/31-engines/index.md b/docz/docs/03-demos/12-engines/index.md similarity index 99% rename from docz/docs/03-demos/31-engines/index.md rename to docz/docs/03-demos/12-engines/index.md index 369cbe7..034ae00 100644 --- a/docz/docs/03-demos/31-engines/index.md +++ b/docz/docs/03-demos/12-engines/index.md @@ -1,7 +1,7 @@ --- title: JavaScript Engines -pagination_prev: demos/cli -pagination_next: demos/clipboard +pagination_prev: demos/bigdata/index +pagination_next: solutions/input --- import current from '/version.js'; diff --git a/docz/docs/03-demos/31-engines/_category_.json b/docz/docs/03-demos/31-engines/_category_.json deleted file mode 100644 index f21164c..0000000 --- a/docz/docs/03-demos/31-engines/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "label": "Other Languages", - "position": 31, - "collapsed": false -} \ No newline at end of file diff --git a/docz/docs/03-demos/_category_.json b/docz/docs/03-demos/_category_.json index aba1258..29564b6 100644 --- a/docz/docs/03-demos/_category_.json +++ b/docz/docs/03-demos/_category_.json @@ -1,4 +1,4 @@ { "label": "Demos", - "position": 4 + "position": 3 } \ No newline at end of file diff --git a/docz/docs/03-demos/index.md b/docz/docs/03-demos/index.md index 9cba2e2..aadce0e 100644 --- a/docz/docs/03-demos/index.md +++ b/docz/docs/03-demos/index.md @@ -33,7 +33,7 @@ run in the web browser, demos will include interactive examples. ### Front-End UI Components - [`canvas-datagrid`](/docs/demos/grid#canvas-datagrid) -- [`x-spreadsheet`](/docs/demos/grid#x-spreadsheet) +- [`x-spreadsheet`](/docs/demos/grid/xs) - [`react-data-grid`](/docs/demos/grid#react-data-grid) - [`glide-data-grid`](/docs/demos/grid#glide-data-grid) - [`vue3-table-lite`](/docs/demos/grid#vue3-table-lite) diff --git a/docz/docs/06-solutions/01-input.md b/docz/docs/06-solutions/01-input.md index fec7199..dc01247 100644 --- a/docz/docs/06-solutions/01-input.md +++ b/docz/docs/06-solutions/01-input.md @@ -724,8 +724,8 @@ the function and the optional `opts` argument in more detail. ["Complete Example"](/docs/getting-started/example) contains a detailed example "Get Data from a JSON Endpoint and Generate a Workbook" -[`x-spreadsheet`](/docs/demos/grid#x-spreadsheet) is an interactive data grid -for previewing and modifying structured data in the web browser. +[`x-spreadsheet`](/docs/demos/grid/xs) is an interactive data grid for +previewing and modifying structured data in the web browser. ["Typed Arrays and ML"](/docs/demos/ml) covers strategies for creating worksheets from ML library exports (datasets stored in Typed Arrays). diff --git a/docz/docs/06-solutions/05-output.md b/docz/docs/06-solutions/05-output.md index a4966f4..cea7e3b 100644 --- a/docz/docs/06-solutions/05-output.md +++ b/docz/docs/06-solutions/05-output.md @@ -599,8 +599,8 @@ With the `header: 1` option, the function exports an array of arrays of values. -[`x-spreadsheet`](/docs/demos/grid#x-spreadsheet) is an interactive data grid -for previewing and modifying structured data in the web browser. +[`x-spreadsheet`](/docs/demos/grid/xs) is an interactive data grid for +previewing and modifying structured data in the web browser. @@ -741,13 +741,13 @@ function Tabeller(props) { setWorkbook(wb); })(); }); - return workbook.SheetNames.map(name => (<> + return workbook.SheetNames.map(name => ( <>

    name

    - )); + )); } ``` diff --git a/docz/docs/07-csf/07-features/01-formulae.md b/docz/docs/07-csf/07-features/01-formulae.md index bf4fed7..b03b6a7 100644 --- a/docz/docs/07-csf/07-features/01-formulae.md +++ b/docz/docs/07-csf/07-features/01-formulae.md @@ -429,7 +429,7 @@ function Translator(props) { setNames(data[fromvalue]); }); - return (<> + return ( <> Name:
    @@ -440,7 +440,7 @@ function Translator(props) { {locales.map(l => ())}
    Translation:
    {name}
    - ); + ); } ``` diff --git a/docz/docs/07-csf/07-features/02-hyperlinks.md b/docz/docs/07-csf/07-features/02-hyperlinks.md index 09d5231..14874d9 100644 --- a/docz/docs/07-csf/07-features/02-hyperlinks.md +++ b/docz/docs/07-csf/07-features/02-hyperlinks.md @@ -95,10 +95,10 @@ function ExportRemoteLink(props) { XLSX.writeFile(wb, "SheetJSRemoteLink.xlsx"); }); - return (<> + return ( <> Email:
    - ); + ); } ``` @@ -198,14 +198,14 @@ function ExportHyperlink(props) { XLSX.writeFile(wb, "SheetJSHTMLHyperlink.xlsx"); }); - return (<> + return ( <> - ); + ); } ``` diff --git a/docz/docs/07-csf/07-features/03-dates.md b/docz/docs/07-csf/07-features/03-dates.md index b85b19b..9da3943 100644 --- a/docz/docs/07-csf/07-features/03-dates.md +++ b/docz/docs/07-csf/07-features/03-dates.md @@ -229,10 +229,10 @@ function SSFIsDate() { setFormat(evt.target.value); }); const is_date = XLSX.SSF.is_date(format); - return (<> + return ( <>
    Format |{format}| is {is_date ? "" : "not"} a date/time
    - ) + ); } ``` diff --git a/docz/docs/index.md b/docz/docs/index.md index 3485297..b2e42ec 100644 --- a/docz/docs/index.md +++ b/docz/docs/index.md @@ -86,7 +86,7 @@ function Table2XLSX(props) { XLSX.writeFile(wb, "SheetJSTable.xlsx"); }); - return (<> + return ( <> @@ -96,7 +96,7 @@ function Table2XLSX(props) {
    SheetJS Table Export
    AuthorID你好!
    - ); + ); } ``` @@ -165,7 +165,7 @@ function Numbers2HTML(props) { setHTML(XLSX.utils.sheet_to_html(ws)); }, []); - return (
    ); + return (
    ); } ``` @@ -204,7 +204,7 @@ This,is,a,Test setHTML(XLSX.utils.sheet_to_html(ws, { id: "tabeller" })); }, []); - return (<> + return ( <> {/* Import Button */} { /* get data as an ArrayBuffer */ @@ -230,7 +230,7 @@ This,is,a,Test {/* Show HTML preview */}
    - ); + ); } ``` diff --git a/docz/docusaurus.config.js b/docz/docusaurus.config.js index e07ffd0..4e8ae42 100644 --- a/docz/docusaurus.config.js +++ b/docz/docusaurus.config.js @@ -201,6 +201,19 @@ const config = { /* data */ { from: '/docs/demos/nosql', to: '/docs/demos/data/' }, { from: '/docs/demos/database', to: '/docs/demos/data/' }, + /* net */ + { from: '/docs/demos/headless', to: '/docs/demos/net/headless/' }, + { from: '/docs/demos/server', to: '/docs/demos/net/server/' }, + { from: '/docs/demos/network', to: '/docs/demos/net/network/' }, + /* local */ + { from: '/docs/demos/clipboard', to: '/docs/demos/local/clipboard/' }, + { from: '/docs/demos/localfile', to: '/docs/demos/local/file/' }, + /* desktop */ + { from: '/docs/demos/cli', to: '/docs/demos/desktop/cli/' }, + /* bigdata */ + { from: '/docs/demos/ml', to: '/docs/demos/bigdata/ml/' }, + { from: '/docs/demos/worker', to: '/docs/demos/bigdata/worker/' }, + { from: '/docs/demos/stream', to: '/docs/demos/bigdata/stream/' }, ] }] ] diff --git a/docz/static/muidg/App.tsx b/docz/static/muidg/App.tsx index dbc388c..0cefa98 100644 --- a/docz/static/muidg/App.tsx +++ b/docz/static/muidg/App.tsx @@ -105,7 +105,7 @@ export default function App() {
    {["xlsx", "xlsb", "xls"].map((ext) => ( ))}
    - )} + )} ); } diff --git a/docz/static/rdg/App.tsx b/docz/static/rdg/App.tsx index 80616d7..1c87782 100644 --- a/docz/static/rdg/App.tsx +++ b/docz/static/rdg/App.tsx @@ -104,7 +104,7 @@ export default function App() {
    {["xlsx", "xlsb", "xls"].map((ext) => ( ))}
    - )} + )} ); }