diff --git a/README.md b/README.md index b11f29d..3001a4f 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,20 @@ This is no longer valid in MDX v2. Autolinks should be used: Scripts are available at https://cdn.sheetjs.com ``` +**Variables** + +Patterns such as + +``` +Foo{current} +``` + +do not work in MDX v2. Instead, string literals and concatenation must be used: + +``` +{"Foo" + current + ""} +``` + diff --git a/docz/docs/02-getting-started/01-installation/01-standalone.mdx b/docz/docs/02-getting-started/01-installation/01-standalone.mdx index 088d632..f7ed38b 100644 --- a/docz/docs/02-getting-started/01-installation/01-standalone.mdx +++ b/docz/docs/02-getting-started/01-installation/01-standalone.mdx @@ -1,4 +1,5 @@ --- +title: Standalone Browser Scripts pagination_prev: getting-started/index pagination_next: getting-started/examples/index sidebar_position: 1 @@ -9,8 +10,6 @@ sidebar_custom_props: import current from '/version.js'; import CodeBlock from '@theme/CodeBlock'; -# Standalone Browser Scripts - Each standalone release script is available at https://cdn.sheetjs.com/.

The current version is {current} and can be referenced as follows:

@@ -40,7 +39,7 @@ syncing issues, they are generally out of date. ## Browser Scripts -`xlsx.full.min.js` is the complete standalone script. It includes support for +`xlsx.full.min.js` is the complete standalone script. It includes support for reading and writing many spreadsheet formats. {`\ @@ -48,11 +47,11 @@ reading and writing many spreadsheet formats. `} +`xlsx.mini.min.js` is a slimmer build that omits the following features: -A slimmer build is generated at `dist/xlsx.mini.min.js`. Compared to full build: -- codepage library skipped (no support for XLS encodings) -- no support for XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003 / Numbers -- node stream utils removed +- CSV and SYLK encodings (directly affecting users outside of the United States) +- XLSB / XLS / Lotus 1-2-3 / SpreadsheetML 2003 / Numbers file formats +- Stream utility functions
How to integrate the mini build (click to show) @@ -69,10 +68,11 @@ scratch, a single script tag should be added at the top of the HTML page: ### Vendoring -For general stability, "vendoring" scripts is the recommended approach: +For general stability, making a local copy of SheetJS scripts ("vendoring") is +strongly recommended. Vendoring decouples websites from SheetJS infrastructure. -

1) Download the script (xlsx.full.min.js) for - the desired version. The current version is available at https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.full.min.js

+
  1. Download the script (xlsx.full.min.js) for + the desired version. The current version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"}

2) Move the script to a `public` folder with other scripts. @@ -95,11 +95,11 @@ use the CDN scripts directly. They should be downloaded and saved to a public directory in the site: -Add a `script` reference to the shim before the standalone script: +A `script` reference to the shim must be added before the standalone script: ```html @@ -123,9 +123,11 @@ importScripts("https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.mi :::caution pass -This section refers to imports using `script type="module"`. For imports in -modern projects using Webpack or React or Angular or VueJS, the installation is -described [in "Frameworks and Bundlers"](/docs/getting-started/installation/frameworks). +This section refers to imports in HTML pages using `script type="module"`. + +The ["Frameworks and Bundlers"](/docs/getting-started/installation/frameworks) +section covers imports in projects using bundlers (ViteJS) or frameworks +(Kaioken / ReactJS / Angular / VueJS / Svelte) ::: @@ -210,8 +212,7 @@ Bower is deprecated and the maintainers recommend using other tools. ::: - -The Bower package manager plays nice with the CDN tarballs: +The Bower package manager supports tarballs from the SheetJS CDN: {`\ npx bower install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} diff --git a/docz/docs/02-getting-started/01-installation/02-frameworks.md b/docz/docs/02-getting-started/01-installation/02-frameworks.md index 1d1f9b6..66e47b4 100644 --- a/docz/docs/02-getting-started/01-installation/02-frameworks.md +++ b/docz/docs/02-getting-started/01-installation/02-frameworks.md @@ -1,9 +1,10 @@ --- +title: Frameworks and Bundlers pagination_prev: getting-started/index pagination_next: getting-started/examples/index sidebar_position: 2 sidebar_custom_props: - summary: Angular, React, VueJS, Webpack, etc. + summary: Kaioken, Angular, React, VueJS, ViteJS, Webpack, etc. --- import current from '/version.js'; @@ -11,13 +12,11 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; -# Frameworks and Bundlers - Each standalone release package is available at https://cdn.sheetjs.com/. The -NodeJS package is designed to be used with frameworks and bundlers. It is a +NodeJS package is designed to be used with frameworks and bundlers. It is a proper ECMAScript Module release which can be optimized with developer tools. -

https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for version {current}

+

{"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"} is the URL for version {current}

## Installation @@ -131,7 +130,8 @@ in `package.json` can control module resolution: ### Vendoring -For general stability, "vendoring" modules is the recommended approach: +For general stability, making a local copy of SheetJS modules ("vendoring") is +strongly recommended. Vendoring decouples projects from SheetJS infrastructure. 0) Remove any existing dependency on a project named `xlsx`: @@ -153,8 +153,8 @@ yarn remove xlsx`} -

1) Download the tarball (xlsx-{current}.tgz) for the desired version. The current - version is available at https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz

+
  1. Download the tarball (xlsx-{current}.tgz) for the desired version. The current + version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"}

2) Create a `vendor` subfolder at the root of your project and move the tarball to that folder. Add it to your project repository. diff --git a/docz/docs/02-getting-started/01-installation/03-nodejs.md b/docz/docs/02-getting-started/01-installation/03-nodejs.md index ecdcb5e..37f35fe 100644 --- a/docz/docs/02-getting-started/01-installation/03-nodejs.md +++ b/docz/docs/02-getting-started/01-installation/03-nodejs.md @@ -14,7 +14,7 @@ import CodeBlock from '@theme/CodeBlock'; Package tarballs are available on https://cdn.sheetjs.com. -

https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for version {current}

+

{"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"} is the URL for version {current}

## Installation @@ -120,7 +120,8 @@ in `package.json` can control module resolution: ### Vendoring -For general stability, "vendoring" modules is the recommended approach: +For general stability, making a local copy of SheetJS modules ("vendoring") is +strongly recommended. Vendoring decouples projects from SheetJS infrastructure. 0) Remove any existing dependency on a project named `xlsx`: @@ -142,8 +143,7 @@ yarn remove xlsx`} -

1) Download the tarball (xlsx-{current}.tgz) for the desired version. The current - version is available at https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz

+
  1. Download the tarball (xlsx-{current}.tgz) for the desired version. The current version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"}

2) Create a `vendor` subfolder at the root of your project and move the tarball to that folder. Add it to your project repository. diff --git a/docz/docs/02-getting-started/01-installation/04-amd.md b/docz/docs/02-getting-started/01-installation/04-amd.md index 58e7ef8..cd2e5d3 100644 --- a/docz/docs/02-getting-started/01-installation/04-amd.md +++ b/docz/docs/02-getting-started/01-installation/04-amd.md @@ -1,4 +1,5 @@ --- +title: AMD (define) pagination_prev: getting-started/index pagination_next: getting-started/examples/index sidebar_position: 4 @@ -9,13 +10,11 @@ sidebar_custom_props: import current from '/version.js'; import CodeBlock from '@theme/CodeBlock'; -# AMD (define) - Each standalone release script is available at https://cdn.sheetjs.com/. `xlsx.full.min.js` supports AMD with name `xlsx` out of the box. -

https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.full.min.js is the URL for {current}

+

{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"} is the URL for {current}

:::note pass @@ -65,6 +64,65 @@ define(['N/file', 'xlsx'], function(file, XLSX) { **More details are included in the [NetSuite demo](/docs/demos/cloud/netsuite#installation)** +:::caution Oracle Bugs + +[NetSuite users reported](https://git.sheetjs.com/sheetjs/sheetjs/issues/3097) +errors that stem from an Oracle issue. A sample error message is shown below. + +``` +Fail to evaluate script: com.netsuite.suitescript.scriptobject.GraalValueAdapter@68d0f09d +``` + +**This is a NetSuite bug. Only Oracle can fix the bug!** + +It is strongly encouraged to escalate the issue with Oracle support. + +NetSuite users have reported success with the following workaround: + +1) Open the script in a text editor and search for `define(` in the code. + +There will be exactly one instance: + +```js +define("xlsx",function(){ +``` + +Replace the `xlsx` with `sheetjs`: + +```js +define("sheetjs",function(){ +``` + +2) Use the new name in the JSON configuration: + +```json title="JsLibraryConfig.json" +{ + "paths": { + // highlight-next-line + "sheetjs": "/path/to/xlsx.full.min" + } +} +``` + +3) Use the new name in the array argument to the `define` function call: + +```js title="SuiteScript" +/** + * @NApiVersion 2.x + * ... more options ... + // highlight-next-line + * @NAmdConfig ./JsLibraryConfig.json + */ +// highlight-next-line +define(['N/file', 'sheetjs'], function(file, XLSX) { + // ^^^^^^^ ^^^^ + // new module name same variable + // ... use XLSX here ... +}); +``` + +::: + ## SAP UI5 After downloading the script, it can be uploaded to the UI5 project and loaded diff --git a/docz/docs/02-getting-started/01-installation/05-extendscript.md b/docz/docs/02-getting-started/01-installation/05-extendscript.md index c10ef90..8c62e72 100644 --- a/docz/docs/02-getting-started/01-installation/05-extendscript.md +++ b/docz/docs/02-getting-started/01-installation/05-extendscript.md @@ -1,4 +1,5 @@ --- +title: ExtendScript pagination_prev: getting-started/index pagination_next: getting-started/examples/index sidebar_position: 5 @@ -8,13 +9,15 @@ sidebar_custom_props: import current from '/version.js'; -# ExtendScript +ExtendScript is a dialect of JavaScript used in Photoshop and InDesign scripts. Each standalone release script is available at https://cdn.sheetjs.com/. -`xlsx.extendscript.js` is an ExtendScript build for Photoshop and InDesign. +`xlsx.extendscript.js` is a special ExtendScript-compatible build. The script is +carefully assembled to work around ExtendScript quirks. Due to bugs in various +JavaScript minifiers and tools, scripts cannot be compressed or post-processed. -

https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.extendscript.js is the URL for {current}

+

{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.extendscript.js"} is the URL for {current}

After downloading the script, it can be directly referenced with `#include`: diff --git a/docz/docs/02-getting-started/01-installation/06-deno.md b/docz/docs/02-getting-started/01-installation/06-deno.md index 077b9ea..8bd997e 100644 --- a/docz/docs/02-getting-started/01-installation/06-deno.md +++ b/docz/docs/02-getting-started/01-installation/06-deno.md @@ -1,4 +1,5 @@ --- +title: Deno pagination_prev: getting-started/index pagination_next: getting-started/examples/index sidebar_position: 6 @@ -11,7 +12,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; -# Deno +Deno is a JavaScript runtime that can import scripts from URLs. Module scripts and type definitions are available at https://cdn.sheetjs.com/. @@ -22,7 +23,8 @@ Using the URL imports, `deno run` will automatically download scripts and types: import * as XLSX from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs';`}
-The `@deno-types` comment instructs Deno to use the type definitions. +The module URL is the ECMAScript Module build on the SheetJS CDN. `@deno-types` +instructs Deno to use the type definitions from the SheetJS CDN. :::caution Deno support is considered experimental. diff --git a/docz/docs/02-getting-started/01-installation/07-bun.md b/docz/docs/02-getting-started/01-installation/07-bun.md index 7c97b71..df0892a 100644 --- a/docz/docs/02-getting-started/01-installation/07-bun.md +++ b/docz/docs/02-getting-started/01-installation/07-bun.md @@ -14,7 +14,7 @@ import CodeBlock from '@theme/CodeBlock'; Package tarballs are available on https://cdn.sheetjs.com. -

https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz is the URL for version {current}

+

{"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"} is the URL for version {current}

:::caution Bun support is considered experimental. @@ -50,8 +50,7 @@ For general stability, "vendoring" modules is the recommended approach: bun rm xlsx ``` -

1) Download the tarball (xlsx-{current}.tgz) for the desired version. The current - version is available at https://cdn.sheetjs.com/xlsx-{current}/xlsx-{current}.tgz

+
  1. Download the tarball (xlsx-{current}.tgz) for the desired version. The current version is available at {"https://cdn.sheetjs.com/xlsx-" + current + "/xlsx-" + current + ".tgz"}

2) Create a `vendor` subfolder at the root of your project and move the tarball to that folder. Add it to your project repository. @@ -135,7 +134,7 @@ cd sheetjs-bun-dle echo "{}" > package.json ``` -1) Install the library: +1) Install the SheetJS package tarball: {`\ bun install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} diff --git a/docz/docs/02-getting-started/02-examples/04-import.md b/docz/docs/02-getting-started/02-examples/04-import.md index b528ec9..0434d5a 100644 --- a/docz/docs/02-getting-started/02-examples/04-import.md +++ b/docz/docs/02-getting-started/02-examples/04-import.md @@ -1,4 +1,5 @@ --- +title: Import Tutorial pagination_prev: getting-started/installation/index pagination_next: getting-started/roadmap sidebar_position: 4 @@ -9,8 +10,6 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; -# Import Tutorial - Many government agencies distribute official data and statistics in workbooks. SheetJS libraries help translate these files to useful information. diff --git a/docz/docs/02-getting-started/02-examples/index.md b/docz/docs/02-getting-started/02-examples/index.md index 95b14b1..9f41d97 100644 --- a/docz/docs/02-getting-started/02-examples/index.md +++ b/docz/docs/02-getting-started/02-examples/index.md @@ -1,12 +1,11 @@ --- +title: Tutorials pagination_prev: getting-started/installation/index pagination_next: getting-started/roadmap --- -# Tutorials - SheetJS presents a simple JS interface that works with "Array of Arrays" and -"Array of JS Objects". The API functions are building blocks that should be +"Array of JS Objects". The API functions are building blocks that should be combined with other JS APIs to solve problems. These discussions focus on the problem solving mindset. API details are covered diff --git a/docz/docs/02-getting-started/03-roadmap.md b/docz/docs/02-getting-started/03-roadmap.md index aefa752..d247e94 100644 --- a/docz/docs/02-getting-started/03-roadmap.md +++ b/docz/docs/02-getting-started/03-roadmap.md @@ -1,10 +1,9 @@ --- +title: Roadmap pagination_prev: getting-started/examples/index sidebar_position: 3 --- -# Roadmap - Most scenarios involving spreadsheets and data can be divided into 5 parts: 1) **Acquire Data**: Data may be stored anywhere: local or remote files, diff --git a/docz/docs/02-getting-started/04-zen.md b/docz/docs/02-getting-started/04-zen.md index 20a7f61..83071a8 100644 --- a/docz/docs/02-getting-started/04-zen.md +++ b/docz/docs/02-getting-started/04-zen.md @@ -1,10 +1,9 @@ --- +title: Zen of SheetJS sidebar_position: 4 hide_table_of_contents: true --- -# Zen of SheetJS - SheetJS design and development is guided by a few key principles. ### Data processing should fit in any workflow diff --git a/docz/docs/02-getting-started/index.md b/docz/docs/02-getting-started/index.md index 753cb56..738d569 100644 --- a/docz/docs/02-getting-started/index.md +++ b/docz/docs/02-getting-started/index.md @@ -1,4 +1,5 @@ --- +title: Getting Started hide_table_of_contents: true pagination_next: getting-started/installation/index --- @@ -6,8 +7,6 @@ pagination_next: getting-started/installation/index import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; -# Getting Started - ["Export Tutorial"](/docs/getting-started/examples/export) is a live example that covers general data munging and data export to spreadsheets. diff --git a/docz/docs/03-demos/17-mobile/01-reactnative.md b/docz/docs/03-demos/17-mobile/01-reactnative.md index bed4e1d..b0a07b7 100644 --- a/docz/docs/03-demos/17-mobile/01-reactnative.md +++ b/docz/docs/03-demos/17-mobile/01-reactnative.md @@ -1,5 +1,5 @@ --- -title: React Native +title: Sheets on the Go with React Native sidebar_label: React Native description: Build data-intensive mobile apps with React Native. Seamlessly integrate spreadsheets into your app using SheetJS. Securely process and generate Excel files in the field. pagination_prev: demos/static/index @@ -9,8 +9,6 @@ sidebar_custom_props: summary: React + Native Rendering --- -# Sheets on the Go with React Native - import current from '/version.js'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docz/docs/03-demos/19-desktop/04-tauri.md b/docz/docs/03-demos/19-desktop/04-tauri.md index 0d52814..37730c6 100644 --- a/docz/docs/03-demos/19-desktop/04-tauri.md +++ b/docz/docs/03-demos/19-desktop/04-tauri.md @@ -9,8 +9,6 @@ sidebar_custom_props: summary: Webview + Rust Backend --- -# Data Wrangling in Tauri Apps - import current from '/version.js'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docz/docs/03-demos/30-cloud/01-salesforce.md b/docz/docs/03-demos/30-cloud/01-salesforce.md index 2047c18..f4329bf 100644 --- a/docz/docs/03-demos/30-cloud/01-salesforce.md +++ b/docz/docs/03-demos/30-cloud/01-salesforce.md @@ -499,7 +499,7 @@ The app will display the "SheetForce demo" text from the component template: ### Add SheetJS -

16) Download https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.full.min.js

+
  1. Download {"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"}

:::warning pass diff --git a/docz/docs/03-demos/32-extensions/10-stata.md b/docz/docs/03-demos/32-extensions/10-stata.md index 4dbcc7b..523a119 100644 --- a/docz/docs/03-demos/32-extensions/10-stata.md +++ b/docz/docs/03-demos/32-extensions/10-stata.md @@ -428,8 +428,8 @@ program drop cleanfile clear ``` -

19) In the result of Step 16, click the link on import -excel "sheetjs.tmp.xlsx", firstrow

+
  1. In the result of Step 16, click the link on import +excel "sheetjs.tmp.xlsx", firstrow

Alternatively, manually type the command: diff --git a/docz/docs/03-demos/index.md b/docz/docs/03-demos/index.md index ec05c25..ff77370 100644 --- a/docz/docs/03-demos/index.md +++ b/docz/docs/03-demos/index.md @@ -1,11 +1,10 @@ --- +title: Demos pagination_prev: getting-started/index pagination_next: solutions/input hide_table_of_contents: true --- -# Demos - Demos include complete examples and short discussions. For features that can run in the web browser, demos will include interactive examples. @@ -29,8 +28,9 @@ in the [issue tracker](https://git.sheetjs.com/sheetjs/docs.sheetjs.com/issues) ### Web Frameworks +- [`Kaioken`](/docs/demos/frontend/kaioken) - [`Angular`](/docs/demos/frontend/angular) -- [`React`](/docs/demos/frontend/react) +- [`ReactJS`](/docs/demos/frontend/react) - [`Svelte`](/docs/demos/frontend/svelte) - [`VueJS`](/docs/demos/frontend/vue) - [`AngularJS`](/docs/demos/frontend/angularjs) @@ -132,12 +132,13 @@ in the [issue tracker](https://git.sheetjs.com/sheetjs/docs.sheetjs.com/issues) - [`JavaScript Engines`](/docs/demos/engines) - [`V8 (C++ / Rust)`](/docs/demos/engines/v8) -- [`Duktape (C / Perl)`](/docs/demos/engines/duktape) +- [`Duktape (C / Perl / Python / Zig)`](/docs/demos/engines/duktape) - [`JavaScriptCore (Swift)`](/docs/demos/engines/jsc) - [`Rhino (Java)`](/docs/demos/engines/rhino) - [`Nashorn (Java)`](/docs/demos/engines/nashorn) - [`Goja (Go)`](/docs/demos/engines/goja) - [`ChakraCore (C++)`](/docs/demos/engines/chakra) - [`QuickJS (C)`](/docs/demos/engines/quickjs) +- [`Jint (C# / .NET)`](/docs/demos/engines/jint) - [`ExecJS (Ruby)`](/docs/demos/engines/rb) - [`JavaScript::Engine (Perl)`](/docs/demos/engines/perl) diff --git a/docz/docs/06-solutions/01-input.md b/docz/docs/06-solutions/01-input.md index 3664b17..88c9270 100644 --- a/docz/docs/06-solutions/01-input.md +++ b/docz/docs/06-solutions/01-input.md @@ -1,10 +1,9 @@ --- +title: Data Import sidebar_position: 1 pagination_prev: demos/index --- -# Data Import - import current from '/version.js'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docz/docs/06-solutions/03-processing.md b/docz/docs/06-solutions/03-processing.md index 9f13906..6b885bd 100644 --- a/docz/docs/06-solutions/03-processing.md +++ b/docz/docs/06-solutions/03-processing.md @@ -1,9 +1,8 @@ --- +title: Data Processing sidebar_position: 3 --- -# Data Processing - The ["Common Spreadsheet Format"](/docs/csf/general) is a simple object representation of the core concepts of a workbook. The utility functions work with the object representation and are intended to handle common use cases. diff --git a/docz/docs/06-solutions/05-output.md b/docz/docs/06-solutions/05-output.md index b30ac94..706d82f 100644 --- a/docz/docs/06-solutions/05-output.md +++ b/docz/docs/06-solutions/05-output.md @@ -1,14 +1,20 @@ --- +title: Data Export sidebar_position: 5 --- -# Data Export - import current from '/version.js'; import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import CodeBlock from '@theme/CodeBlock'; +:::tip pass + +The ["Export Tutorial"](/docs/getting-started/examples/export) is a gentle +introduction to data processing and export. + +::: + ## Writing Workbooks ### API diff --git a/docz/docs/07-csf/03-sheet.md b/docz/docs/07-csf/03-sheet.md index 4e57639..8c39773 100644 --- a/docz/docs/07-csf/03-sheet.md +++ b/docz/docs/07-csf/03-sheet.md @@ -1,12 +1,11 @@ --- +title: Sheet Objects sidebar_position: 3 --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Sheet Objects - Excel supports 4 different types of "sheets": - "worksheets": normal sheets - "chartsheets": full-tab charts diff --git a/docz/docs/07-csf/04-book.md b/docz/docs/07-csf/04-book.md index 43be47f..77e2c41 100644 --- a/docz/docs/07-csf/04-book.md +++ b/docz/docs/07-csf/04-book.md @@ -1,8 +1,10 @@ --- +title: Workbook Object sidebar_position: 4 --- -# Workbook Object +SheetJS workbook objects represent collections of worksheets and associated +workbook-level metadata. For a given workbook object `wb`: diff --git a/docz/docs/07-csf/07-features/02-formulae.md b/docz/docs/07-csf/07-features/02-formulae.md index e096578..e3c60bd 100644 --- a/docz/docs/07-csf/07-features/02-formulae.md +++ b/docz/docs/07-csf/07-features/02-formulae.md @@ -1,9 +1,8 @@ --- +title: Formulae sidebar_position: 2 --- -# Formulae - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; diff --git a/docz/docs/07-csf/07-features/index.md b/docz/docs/07-csf/07-features/index.md index ca9633a..226cc82 100644 --- a/docz/docs/07-csf/07-features/index.md +++ b/docz/docs/07-csf/07-features/index.md @@ -1,12 +1,17 @@ -# Spreadsheet Features +--- +title: Spreadsheet Features +--- import DocCardList from '@theme/DocCardList'; import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; -Even for basic features like date storage, the official Excel formats store the -same content in different ways. The parsers are expected to convert from the -underlying file format representation to the Common Spreadsheet Format. Writers -are expected to serialize SheetJS workbooks in the underlying file format. +File formats represent data in different ways. + +SheetJS parsers are expected to convert from the underlying file format +representation to the Common Spreadsheet Format. + +SheetJS writers are expected to convert from the Common Spreadsheet Format to +the relevant file formats. The following topics are covered in sub-pages: diff --git a/docz/docs/08-api/05-write-options.md b/docz/docs/08-api/05-write-options.md index b47950d..7ebdf4e 100644 --- a/docz/docs/08-api/05-write-options.md +++ b/docz/docs/08-api/05-write-options.md @@ -130,7 +130,7 @@ Adding NUMBERS export support involves two steps: -

https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.zahl.js is the URL for {current}

+

{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.zahl.js"} is the URL for {current}

{`\ \n\ @@ -202,7 +202,7 @@ XLSX.writeFile(wb, "textport.numbers", {numbers: XLSX_ZAHL_PAYLOAD, compression:
-

https://cdn.sheetjs.com/xlsx-{current}/package/dist/xlsx.zahl.mjs is the URL for {current}

+

{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.zahl.mjs"} is the URL for {current}

{`\ import * as XLSX from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs';\n\ diff --git a/docz/docs/08-api/07-utilities/03-html.md b/docz/docs/08-api/07-utilities/03-html.md index a77ae08..03bfca4 100644 --- a/docz/docs/08-api/07-utilities/03-html.md +++ b/docz/docs/08-api/07-utilities/03-html.md @@ -377,7 +377,7 @@ can be added to the individual TD elements: | Attribute | Description | |:----------|:-------------------------------------------------------------| -| `data-t` | Override [Cell Type](/docs/csf/cell#data-types) | +| `data-t` | Override [Cell Type](/docs/csf/cell#cell-types) | | `data-v` | Override Cell Value | | `data-z` | Override [Number Format](/docs/csf/features/nf) | diff --git a/docz/docs/09-miscellany/04-testing.md b/docz/docs/09-miscellany/04-testing.md index 29ea0a8..edfeebd 100644 --- a/docz/docs/09-miscellany/04-testing.md +++ b/docz/docs/09-miscellany/04-testing.md @@ -1,19 +1,18 @@ --- +title: Testing sidebar_position: 4 hide_table_of_contents: true --- -# Testing - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -`make test` will run the node-based tests. By default it runs tests on files in -every supported format. To test a specific file type, set `FMTS` to the format -you want to test. Feature-specific tests are available with `make test_misc` +`make test` will run the NodeJS tests. By default it runs tests on files in +every supported format. To test a specific file type, set `FMTS` to the desired +file extension. Feature-specific tests are available with `make test_misc`. ```bash $ make test_misc # run core tests @@ -105,8 +104,7 @@ env TZ="Asia/Kolkata" WTF=1 make test_misc ### Test Files -Test files are housed in [another repo](https://github.com/SheetJS/test_files). +The test files were hosted on [GitHub](https://github.com/SheetJS/test_files). -Running `make init` will refresh the `test_files` submodule and get the files. -[The "OS-Specific Setup"](/docs/miscellany/contributing#os-specific-setup) -includes notes for installing the required dependencies. +Due to breaking changes in the GitHub infrastructure, the test artifacts are now +distributed in a [ZIP archive](https://test-files.sheetjs.com/test_files.zip) diff --git a/docz/docs/09-miscellany/05-contributing.md b/docz/docs/09-miscellany/05-contributing.md index a5296b4..d1cf4c8 100644 --- a/docz/docs/09-miscellany/05-contributing.md +++ b/docz/docs/09-miscellany/05-contributing.md @@ -1,11 +1,13 @@ --- +title: Contributing sidebar_position: 5 --- -# Contributing - Due to the precarious nature of the Open Specifications Promise, it is very -important to ensure code is cleanroom. [Contribution Notes](https://git.sheetjs.com/sheetjs/sheetjs/src/branch/master/CONTRIBUTING.md) +important to ensure code is cleanroom. + +[The Contribution Notes](https://git.sheetjs.com/sheetjs/sheetjs/src/branch/master/CONTRIBUTING.md) +should be perused before contributing code.
File organization (click to show) @@ -20,7 +22,7 @@ Folders: | `misc` | miscellaneous supporting scripts | | `modules` | TypeScript source files that generate some of the bits | | `packages` | Support libraries and tools | -| `test_files` | test files (pulled from the test files repository) | +| `test_files` | test files (pulled from the test artifacts distribution) | | `tests` | browser tests (run `make ctest` to rebuild) | | `types` | TypeScript definitions and tests | diff --git a/docz/docs/09-miscellany/07-license.md b/docz/docs/09-miscellany/07-license.md index 51d1886..89d2790 100644 --- a/docz/docs/09-miscellany/07-license.md +++ b/docz/docs/09-miscellany/07-license.md @@ -1,10 +1,9 @@ --- +title: License sidebar_position: 7 hide_table_of_contents: true --- -# License - SheetJS Community Edition is licensed under the "Apache 2.0 License". All rights not explicitly granted by the Apache 2.0 License are reserved by SheetJS LLC. @@ -34,6 +33,15 @@ See the License for the specific language governing permissions and limitations under the License. ``` +#### Open Source Disclosure + +It is strongly recommended to create a separate page listing all embedded open +source software. The "open source disclosure" should be linked from relevant +pages including Terms of Service (ToS) and End User License Agreement (EULA) + +[Office 365](https://web.archive.org/web/20240412032204/https://tasks.office.com/license.html) +includes the short-form attribution in a special license page. +
Complete License Text (click to show) diff --git a/docz/docs/09-miscellany/08-references.md b/docz/docs/09-miscellany/08-references.md index 292862a..e073710 100644 --- a/docz/docs/09-miscellany/08-references.md +++ b/docz/docs/09-miscellany/08-references.md @@ -1,10 +1,9 @@ --- +title: References sidebar_position: 8 hide_table_of_contents: true --- -# References - Some of our original research is documented at https://oss.sheetjs.com/notes/ The specifications list is non-exhaustive. diff --git a/docz/docusaurus.config.js b/docz/docusaurus.config.js index c25bd57..a69a7f3 100644 --- a/docz/docusaurus.config.js +++ b/docz/docusaurus.config.js @@ -87,7 +87,7 @@ const config = { mermaid: { options: { themeVariables: { - edgeLabelBackground: "" + edgeLabelBackground: "transparent" } } }, @@ -181,7 +181,7 @@ const config = { } }) }, - additionalLanguages: [ "visual-basic", "swift", "java", "php", "csharp", "perl", "ruby", "cpp", "applescript", "liquid", "rust", "dart", "wolfram", "matlab", "stata", "zig" ], + additionalLanguages: [ "visual-basic", "swift", "java", "php", "csharp", "perl", "ruby", "cpp", "applescript", "liquid", "rust", "dart", "wolfram", "matlab", "stata", "zig", "diff" ], }, liveCodeBlock: { playgroundPosition: 'top'