diff --git a/docz/docs/02-getting-started/02-examples/06-loader.md b/docz/docs/02-getting-started/02-examples/06-loader.md index 5ba6b28..bfb2e63 100644 --- a/docz/docs/02-getting-started/02-examples/06-loader.md +++ b/docz/docs/02-getting-started/02-examples/06-loader.md @@ -36,10 +36,11 @@ This demo was tested in the following configurations: | Platform | Architecture | Date | |:------------------------------------------------------------------|:-------------|:-----------| | NVIDIA RTX 4090 (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-08 | -| NVIDIA RTX 4080 SUPER (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-12 | +| NVIDIA RTX 4090 (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `linux-x64` | 2025-01-28 | | AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-12 | -| AMD RX 6800 XT (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | 2025-01-12 | +| AMD RX 7900 XTX (24 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `linux-x64` | 2025-01-29 | | Intel Arc B580 (12 GB VRAM) + Ryzen Z1 Extreme (24 GB RAM) | `win11-x64` | 2025-01-24 | +| Intel Arc B580 (12 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `linux-x64` | 2025-02-08 | | Apple M2 Max 12-Core CPU + 30-Core GPU (32 GB unified memory) | `darwin-arm` | 2024-11-04 | SheetJS users have verified this demo in other configurations: @@ -47,20 +48,23 @@ SheetJS users have verified this demo in other configurations:
Other tested configurations (click to show) -| Platform | Architecture | Demo | -|:------------------------------------------------------------|:-------------|:------------| -| NVIDIA L40 (48 GB VRAM) + i9-13900K (32 GB RAM) | `linux-x64` | LangChainJS | -| NVIDIA RTX 4070 Ti (12 GB VRAM) + Ryzen 7 5800x (64 GB RAM) | `win11-x64` | LangChainJS | -| NVIDIA RTX 4060 (8 GB VRAM) + Ryzen 7 5700g (32 GB RAM) | `win11-x64` | LangChainJS | -| NVIDIA RTX 3090 (24 GB VRAM) + Ryzen 9 3900XT (128 GB RAM) | `win11-x64` | LangChainJS | -| NVIDIA RTX 3080 (12 GB VRAM) + Ryzen 7 5800X (32 GB RAM) | `win11-x64` | LangChainJS | -| NVIDIA RTX 3070 (8 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | LangChainJS | -| NVIDIA RTX 3060 (12 GB VRAM) + i5-11400 (32 GB RAM) | `win10-x64` | LangChainJS | -| NVIDIA RTX 2080 (12 GB VRAM) + i7-9700K (16 GB RAM) | `win10-x64` | LangChainJS | -| NVIDIA RTX 2070 (8 GB VRAM) + Ryzen 7 3700x (80 GB RAM) | `linux-x64` | LangChainJS | -| NVIDIA RTX 2060 (6 GB VRAM) + Ryzen 5 3600 (32 GB RAM) | `win10-x64` | LangChainJS | -| NVIDIA GTX 1080 (8 GB VRAM) + Ryzen 7 5800x (64 GB RAM) | `win10-x64` | LangChainJS | -| NVIDIA GTX 1070 (8 GB VRAM) + Ryzen 7 7700x (32 GB RAM) | `win11-x64` | LangChainJS | +| Platform | Architecture | Demo | +|:------------------------------------------------------------------|:-------------|:------------| +| NVIDIA L40 (48 GB VRAM) + i9-13900K (32 GB RAM) | `linux-x64` | LangChainJS | +| NVIDIA RTX 4080 SUPER (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | LangChainJS | +| NVIDIA RTX 4070 Ti (12 GB VRAM) + Ryzen 7 5800x (64 GB RAM) | `win11-x64` | LangChainJS | +| NVIDIA RTX 4060 (8 GB VRAM) + Ryzen 7 5700g (32 GB RAM) | `win11-x64` | LangChainJS | +| NVIDIA RTX 3090 (24 GB VRAM) + Ryzen 9 3900XT (128 GB RAM) | `win11-x64` | LangChainJS | +| NVIDIA RTX 3080 (12 GB VRAM) + Ryzen 7 5800X (32 GB RAM) | `win11-x64` | LangChainJS | +| NVIDIA RTX 3070 (8 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | LangChainJS | +| NVIDIA RTX 3060 (12 GB VRAM) + i5-11400 (32 GB RAM) | `win10-x64` | LangChainJS | +| NVIDIA RTX 2080 (12 GB VRAM) + i7-9700K (16 GB RAM) | `win10-x64` | LangChainJS | +| NVIDIA RTX 2070 (8 GB VRAM) + Ryzen 7 3700x (80 GB RAM) | `linux-x64` | LangChainJS | +| NVIDIA RTX 2060 (6 GB VRAM) + Ryzen 5 3600 (32 GB RAM) | `win10-x64` | LangChainJS | +| NVIDIA GTX 1080 (8 GB VRAM) + Ryzen 7 5800x (64 GB RAM) | `win10-x64` | LangChainJS | +| NVIDIA GTX 1070 (8 GB VRAM) + Ryzen 7 7700x (32 GB RAM) | `win11-x64` | LangChainJS | +| AMD RX 6800 XT (16 GB VRAM) + Ryzen Z1 Extreme (16 GB RAM) | `win11-x64` | LangChainJS | +| Apple M4 10-Core CPU + 10-Core GPU (24 GB unified memory) | `darwin-arm` | LangChainJS |
diff --git a/docz/docs/03-demos/02-frontend/10-openui5.md b/docz/docs/03-demos/02-frontend/10-openui5.md index a3cbd1f..5229411 100644 --- a/docz/docs/03-demos/02-frontend/10-openui5.md +++ b/docz/docs/03-demos/02-frontend/10-openui5.md @@ -72,7 +72,7 @@ UI5 is typically loaded in a `SCRIPT` tag in `webapp/index.html`. Similarly, [SheetJS Standalone scripts](/docs/getting-started/installation/standalone) can be loaded with a `SCRIPT` tag in the same HTML page: -{`\ +{`\ `} @@ -434,7 +434,7 @@ SAP recommends `npm run build`. This does not generate a proper standalone site! Sites built with `npm run build` must be served with `npm run start:dist`. This demo uses the `build:opt` target to ensure that a proper static site is -generated. The `dist` folder in this demo can be posted +generated. The `dist` folder in this demo can be deployed on a static host. ::: @@ -604,7 +604,7 @@ SAP recommends `npm run build`. This does not generate a proper standalone site! Sites built with `npm run build` must be served with `npm run start:dist`. This demo uses the `build:opt` target to ensure that a proper static site is -generated. The `dist` folder in this demo can be posted +generated. The `dist` folder in this demo can be deployed on a static host. ::: diff --git a/docz/docs/03-demos/30-cloud/03-oraclecloud.md b/docz/docs/03-demos/30-cloud/03-oraclecloud.md index b1d315d..d534420 100644 --- a/docz/docs/03-demos/30-cloud/03-oraclecloud.md +++ b/docz/docs/03-demos/30-cloud/03-oraclecloud.md @@ -1,5 +1,6 @@ --- -title: Oracle Cloud Services +title: Oracle Cloud Infrastructure +sidebar_label: Oracle Cloud pagination_prev: demos/local/index pagination_next: demos/extensions/index --- @@ -7,22 +8,23 @@ pagination_next: demos/extensions/index import current from '/version.js'; import CodeBlock from '@theme/CodeBlock'; -[Oracle Cloud Services](https://www.oracle.com/cloud/) (OCI) is a cloud services -platform which includes traditional virtual machine support, "Serverless -Functions" and cloud storage. +[Oracle Cloud Infrastructure](https://www.oracle.com/cloud/) (OCI) is a cloud +services platform for building and deploying line of business applications. [SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing data from spreadsheets. -This demo demonstrates how to integrate SheetJS with Oracle `Visual Builder Studio (VBS)`[^2] -to build a web application that handles Excel files. You'll learn to create an application -that can import spreadsheet data, store it in `Business Objects`[^1], display it in a table, and -export it back to Excel format. +This demo explores the "Visual Builder Studio" (VBS) environment[^1]. We'll use +VBS and SheetJS to build a web application that handles Excel files. + +In the ["Complete Example"](#complete-example), we'll create an application that +imports data from spreadsheet, stores data in "Business Objects"[^2], displays +data in table components, and exports Business Objects to new spreadsheets. :::caution pass -Oracle Cloud Services iterates quickly and there is no guarantee that the referenced services -will be available in the future. +Oracle Cloud Infrastructure iterates quickly and there is no guarantee that the +referenced services will be available in the future. ::: @@ -32,41 +34,84 @@ This demo was last tested on 2025-02-04. ::: - ## Visual Applications -Oracle Cloud Services offers Visual Builder Studio a browser-based development environment for -creating web applications with drag-and-drop components. +"Visual Builder Studio", a core Oracle Cloud Infrastructure offering, is a +browser-based development environment for creating web applications with +drag-and-drop components. -## Installation -SheetJS libraries conform to the Oracle Cloud Visual Builder Studio (VBS) ECMAScript[^5] requirements. -SheetJS libraries can be loaded in Oracle VBS site at different points in the app lifecycle. +### Installation -#### Configure in app-flow.json +SheetJS libraries conform to Visual Builder Studio ECMAScript[^5] requirements. +They can be loaded in VBS applications at different points in the app lifecycle. -The `app-flow.json` method is recommended as it aligns better with Visual Builder Studio's -module management system. +#### RequireJS Module {#installation-define} -1. Click πŸ“„ `Source` from the left sidebar -2. Open `webApps/sheetjs_demo_app/app-flow.json` -3. Add the following configuration after line 5: +The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone) +comply with AMD `define` semantics. They support `define` out of the box. -{`\ -"requirejs": { +*Module Alias* + +Unlike other platforms, Oracle Visual Builder `define` requires module aliases. +Aliases are stored in `app-flow.json`. SheetJS scripts are designed to use the +`xlsx` alias. + +An alias can be added in Visual Builder Studio with the following steps: + +1. Click πŸ“„ `Source` from the left sidebar. +2. Expand the `webApps` folder. +3. Expand the subfolder whose name matches the "Application Name" for the site. +4. Open `app-flow.json` within the folder from step 3. +5. Add the following lines after line 5: + +{`\ + "requirejs": { "paths": { - "xlsx": "https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.min.js" + "xlsx": "https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.min" } - } + }, `} +*Script Reference* + +After defining the alias, action chains can load the module using `define`: + +```js title="Action Chain Code (loading the SheetJS dependency)" +define([ + // highlight-next-line + "xlsx", + /* ... other libraries ... */ + 'vb/action/actionChain', 'vb/action/actions' +], ( + // highlight-next-line + XLSX, + /* ... variables for the other libraries ... */ + ActionChain, Actions +) => { + class MyActionChain extends ActionChain { + async run(context) { + // highlight-next-line + console.log(XLSX.version); // use XLSX in the callback + } + /* ... other methods ... */ + } + return MyActionChain; +}); +``` + #### HTML {#installation-html} -Oracle Cloud VBS is typically loaded in `SCRIPT` tag in `webApps/sheetjs_demo_app/index.html`. Similarly, -[SheetJS Standalone scripts](/docs/getting-started/installation/standalone) -can be loaded with a `SCRIPT` tag in the same HTML page: +[SheetJS Standalone scripts](/docs/getting-started/installation/standalone) can +be loaded with a `SCRIPT` tag in the `index.html` entry page for the app. +Typically this file is stored in the app folder. -{`\ +For example, if the app is named `sheetjs_demo_app`, the entrypoint HTML file is +`webApps/sheetjs_demo_app/index.html`. + +The script should be added before the Oracle JET and VB scripts: + +{`\ `} @@ -83,7 +128,9 @@ depends on the application. ### Business Objects -`Business Objects`[^1] in Oracle VBS provides a server-side model implementation for persistent data storage. +`Business Objects`[^2] in Oracle VBS provides a server-side model implementation +for persistent data storage. + Think of them as a combination of a data model and database table that handles both data storage and UI binding. @@ -140,7 +187,7 @@ Starting from a spreadsheet file, the SheetJS [`read`](/docs/api/parse-options) selecting a worksheet, [`sheet_to_json`](/docs/api/utilities/array#array-output) generates row objects that can be created as Business Object records using the auto-generated REST API. -Here is a sample flow diagram and method for downloading a workbook, generating rows from the first worksheet, and updating a `Business Object`[^1]: +Here is a sample flow diagram and method for downloading a workbook, generating rows from the first worksheet, and updating a `Business Object`[^2]: ```mermaid flowchart LR @@ -386,7 +433,7 @@ define([ }); ``` -## Oracle Visual Builder Studio Web Applications Demo +## Complete Example :::note pass @@ -534,8 +581,8 @@ Visual Builder Studio access. - Open the downloaded file using a spreadsheet editor. - Verify that the exported data matches what was displayed in your application's table -[^1]: See Oracle VBS working with [Business Objects](https://docs.oracle.com/en/cloud/paas/visual-builder/visualbuilder-building-applications/working-business-objects1.html) for more detail. -[^2]: [Oracle Visual Builder Studio](https://docs.oracle.com/en/cloud/paas/visual-builder/) +[^1]: See ["Oracle Visual Builder Studio"](https://docs.oracle.com/en/cloud/paas/visual-builder/) in the Oracle Cloud documentation. +[^2]: See ["Work With Business Objects"](https://docs.oracle.com/en/cloud/paas/visual-builder/visualbuilder-building-applications/working-business-objects1.html) in the Oracle Visual Build Studio documentation. [^3]: Registering for a free account [on the Oracle Cloud Free Tier](https://www.oracle.com/cloud/free/) requires a valid phone number and a valid credit card. [^4]: See [Oracle VBS Table Component](https://docs.oracle.com/en/middleware/developer-tools/jet/13/reference-api/oj.ojTable.html) for more details. [^5]: See ["JavaScript Support in Oracle VBS"](https://docs.oracle.com/en/cloud/paas/visual-builder/visualbuilder-building-applications/work-javascript-editor1.html?utm_source=chatgpt.com) for more details on custom JavaScript functionality and module handling. diff --git a/docz/docs/08-api/07-utilities/03-html.md b/docz/docs/08-api/07-utilities/03-html.md index 35ab8c5..a531b47 100644 --- a/docz/docs/08-api/07-utilities/03-html.md +++ b/docz/docs/08-api/07-utilities/03-html.md @@ -25,8 +25,9 @@ HTML format and HTML table utilities. var html = XLSX.utils.sheet_to_html(ws, opts); ``` -As an alternative to the `writeFile` HTML type, `XLSX.utils.sheet_to_html` also -produces HTML output. The function takes an options argument: +The `sheet_to_html` method generates HTML strings from SheetJS worksheets[^1]. + +The following options are supported: | Option Name | Default | Description | |:------------|:--------:|:----------------------------------------------------| @@ -35,7 +36,8 @@ produces HTML output. The function takes an options argument: | `header` | | Override header | | `footer` | | Override footer | -Starting from [the sample file `pres.numbers`](https://docs.sheetjs.com/pres.numbers): +This example fetches [`pres.numbers`](https://docs.sheetjs.com/pres.numbers) and +generates an HTML TABLE from the contents of the first worksheet: ```jsx live function SheetJSHTML() { @@ -59,6 +61,14 @@ function SheetJSHTML() { } ``` +:::note pass + +The SheetJS [`write` and `writeFile` methods](/docs/api/write-options) generate +HTML when the option `bookType: "html"` is specified. They use `sheet_to_html` +under the hood. + +::: + ### Implementation Details The generated table will include special data attributes on each `TD` element: @@ -451,3 +461,5 @@ browser. ["Browser Automation"](/docs/demos/net/headless) covers some browsers. Some ecosystems provide DOM-like frameworks that are compatible with SheetJS. Examples are included in the ["Synthetic DOM"](/docs/demos/net/dom) demo + +[^1]: See ["Worksheet Object" in "SheetJS Data Model"](/docs/csf/sheet) for more details. diff --git a/docz/docs/09-miscellany/02-errors.md b/docz/docs/09-miscellany/02-errors.md index f5ecf5e..f2465d4 100644 --- a/docz/docs/09-miscellany/02-errors.md +++ b/docz/docs/09-miscellany/02-errors.md @@ -26,8 +26,31 @@ workarounds and solutions! ::: +## Installation Issues + +#### NodeJS / NPM Timeouts + +Errors include + +{`\ + WARN  GET https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz error (ERR_SOCKET_TIMEOUT). Will retry in 10 seconds. 2 retries left.`} + + +The [SheetJS NodeJS module](/docs/getting-started/installation/nodejs) can be +[vendored](/docs/getting-started/installation/nodejs#vendoring) in projects. +Vendoring completely decouples projects from the SheetJS CDN. + +If the [SheetJS CDN](https://cdn.sheetjs.com) is not accessible, modules can be +delivered over the [SheetJS Chat](https://sheetjs.com/chat) + ## Errors +#### No data in worksheets + +[See issue 3273](https://git.sheetjs.com/sheetjs/sheetjs/issues/3273) for more +context. This is a web browser bug affecting Google Chrome, Microsoft Edge, and +other browsers that use the V8 JavaScript engine. + #### Uncaught TypeError: Cannot read property of undefined Errors include diff --git a/docz/docs/09-miscellany/05-contributing.md b/docz/docs/09-miscellany/05-contributing.md index d6c9f9e..3f62383 100644 --- a/docz/docs/09-miscellany/05-contributing.md +++ b/docz/docs/09-miscellany/05-contributing.md @@ -44,7 +44,7 @@ These instructions were tested on the following platforms: | Linux (Steam Deck Holo x64) | `linux-x64` | 2025-01-10 | | Linux (Debian Linux AArch64) | `linux-arm` | 2025-01-14 | | MacOS 14.4 (x64) | `darwin-x64` | 2024-07-12 | -| MacOS 15.1 (ARM64) | `darwin-arm` | 2024-11-10 | +| MacOS 15.2 (ARM64) | `darwin-arm` | 2025-01-27 | | Windows 10 (x64) + WSL Ubuntu | `win10-x64` | 2024-07-12 | | Windows 11 (x64) + WSL Ubuntu | `win11-x64` | 2025-01-14 | | Windows 11 (ARM) + WSL Ubuntu | `win11-arm` | 2024-05-23 | diff --git a/docz/static/oraclecloud/instance_green.png b/docz/static/oraclecloud/instance_green.png new file mode 100644 index 0000000..b61c97d Binary files /dev/null and b/docz/static/oraclecloud/instance_green.png differ diff --git a/docz/static/oraclecloud/instances_table_ready.png b/docz/static/oraclecloud/instances_table_ready.png new file mode 100644 index 0000000..90301ee Binary files /dev/null and b/docz/static/oraclecloud/instances_table_ready.png differ diff --git a/docz/static/oraclecloud/provisioning.png b/docz/static/oraclecloud/provisioning.png new file mode 100644 index 0000000..0713bca Binary files /dev/null and b/docz/static/oraclecloud/provisioning.png differ