forked from sheetjs/docs.sheetjs.com
		
	workarounds for docusaurus breaking changes
This commit is contained in:
		
							parent
							
								
									ac6e3daa1c
								
							
						
					
					
						commit
						b571592055
					
				| @ -27,7 +27,7 @@ new versions are released! | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| A number of services host older versions of the SheetJS libraries.  Due to | ||||
| syncing issues, they are generally out of date. | ||||
| @ -206,7 +206,7 @@ xport.addEventListener("click", async() => { | ||||
| 
 | ||||
| ## Bower | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Bower is deprecated and the maintainers recommend using other tools. | ||||
| 
 | ||||
|  | ||||
| @ -80,7 +80,7 @@ Until Snyk fixes the bugs, the official recommendation is to | ||||
| 
 | ||||
| ### Legacy Endpoints | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Older releases are technically available on the public npm registry as `xlsx`, | ||||
| but the registry is out of date.  The latest version on that registry is 0.18.5 | ||||
| @ -209,7 +209,7 @@ The ["Bundlers" demo](/docs/demos/frontend/bundler) includes complete examples. | ||||
| 
 | ||||
| Dynamic imports with `import()` will only download scripts when they are needed. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Dynamic `import` will always download the full contents of the imported scripts! | ||||
| 
 | ||||
|  | ||||
| @ -70,7 +70,7 @@ Until Snyk fixes the bugs, the official recommendation is to | ||||
| 
 | ||||
| ### Legacy Endpoints | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Older releases are technically available on the public npm registry as `xlsx`, | ||||
| but the registry is out of date.  The latest version on that registry is 0.18.5 | ||||
| @ -237,7 +237,7 @@ XLSX.set_cptable(cpexcel); | ||||
| 
 | ||||
| #### NextJS | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| `fs` cannot be imported from the top level in NextJS pages. This will not work: | ||||
| 
 | ||||
|  | ||||
| @ -137,7 +137,7 @@ sap.ui.define([ | ||||
| }) | ||||
| ``` | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **Copy and pasting code does not work** for SheetJS scripts as they contain | ||||
| Unicode characters that may be mangled.  The standalone script should be | ||||
|  | ||||
| @ -70,7 +70,7 @@ and the types URLs should be updated at the same time: | ||||
| 
 | ||||
| #### Deno Registry | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| The official Deno registry is out of date.  This is a registry bug. | ||||
| 
 | ||||
|  | ||||
| @ -947,7 +947,7 @@ current Java releases. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| There are a number of potential pitfalls. | ||||
| 
 | ||||
|  | ||||
| @ -455,7 +455,7 @@ NextJS requires a number of workarounds for simple client-side JavaScript code. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| NextJS collects telemetry by default. The `telemetry` subcommand can disable it: | ||||
| 
 | ||||
|  | ||||
| @ -38,7 +38,7 @@ should be directed to the Angular project. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| Angular CLI enables telemetry by default. When using a recent version, disable | ||||
| analytics globally through the CLI tool before creating a new project: | ||||
| @ -69,7 +69,7 @@ import { read, utils, writeFile } from 'xlsx'; | ||||
| The various SheetJS APIs work with various data shapes.  The preferred state | ||||
| depends on the application. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Angular 17 broke backwards compatibility with projects using Angular 2 - 16. | ||||
| 
 | ||||
| @ -724,7 +724,7 @@ this.columns = Array.from({ length: range.e.c + 1 }, (_, i) => ({ | ||||
| 
 | ||||
| ## Older Versions | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| This demo is included for legacy deployments. There are incompatibilities with | ||||
| different NodeJS and other ecosystem versions.  Issues should be raised with | ||||
|  | ||||
| @ -10,7 +10,7 @@ sidebar_position: 7 | ||||
| import current from '/version.js'; | ||||
| import CodeBlock from '@theme/CodeBlock'; | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| This demo is for the legacy AngularJS framework (version 1). | ||||
| 
 | ||||
|  | ||||
| @ -57,7 +57,7 @@ require( | ||||
| </script>`} | ||||
| </CodeBlock> | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| The official Google CDN does not have the newest releases of Dojo Toolkit | ||||
| 
 | ||||
|  | ||||
| @ -38,7 +38,7 @@ else document.write(XLSX.version); | ||||
| 
 | ||||
| ## Internet Explorer | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Internet Explorer is unmaintained and users should consider modern browsers. | ||||
| The SheetJS testing grid still includes IE and should work. | ||||
|  | ||||
| @ -260,7 +260,7 @@ npx webpack@3.x -p | ||||
|   </TabItem> | ||||
|   <TabItem value="4+" label="4.x, 5.x and beyond" default> | ||||
| 
 | ||||
| :::warning Pinning specific versions of webpack | ||||
| :::danger Pinning specific versions of webpack | ||||
| 
 | ||||
| The webpack tooling is not designed for switching between versions. A specific | ||||
| version above 4.0 can be pinned by locally installing webpack and the CLI tool. | ||||
|  | ||||
| @ -51,7 +51,7 @@ can load relevant parts of the library: | ||||
| import { read, utils, writeFileXLSX } from 'xlsx'; | ||||
| ``` | ||||
| 
 | ||||
| :::warning Parcel Bug | ||||
| :::danger Parcel Bug | ||||
| 
 | ||||
| Errors of the form `Could not statically evaluate fs call` stem from a Parcel | ||||
| bug[^1]. Upgrade to Parcel version 1.5.0 or later. | ||||
|  | ||||
| @ -63,7 +63,7 @@ part of the `utils` object, the required import is: | ||||
| import { utils, writeFile } from 'xlsx'; | ||||
| ``` | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| When this demo was tested against the `@swc/core@1.3.100`, `spack` crashed: | ||||
| 
 | ||||
|  | ||||
| @ -489,7 +489,7 @@ was added to the platform, third party modules wrapped the native APIs. | ||||
| 
 | ||||
| #### request | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| `request` has been deprecated and should only be used in legacy deployments. | ||||
| 
 | ||||
|  | ||||
| @ -19,7 +19,7 @@ This demo covers three workflows: | ||||
| - [Reading mail](#reading-mail) covers libraries for reading messages | ||||
| - [Data files](#data-files) covers mailbox file formats | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| There are a number of caveats when dealing with live mail servers. It is advised | ||||
| to follow connector module documentation carefully and test with new accounts | ||||
| @ -29,7 +29,7 @@ before integrating with important inboxes or accounts. | ||||
| 
 | ||||
| ## Live Servers | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| It is strongly advised to use a test email address before using an important | ||||
| address.  One small mistake could erase decades of messages or result in a block | ||||
|  | ||||
| @ -344,7 +344,7 @@ After installing engines, re-run the script. | ||||
| 
 | ||||
| PhantomJS is a headless web browser powered by WebKit. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| This information is provided for legacy deployments.  PhantomJS development has | ||||
| been suspended and there are known vulnerabilities, so new projects should use | ||||
|  | ||||
| @ -33,7 +33,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| When this demo was last tested, the grid correctly displayed data but could not | ||||
| be edited by the user. | ||||
|  | ||||
| @ -56,7 +56,7 @@ through a special Export button.  It handles the SheetJS operations internally. | ||||
| 
 | ||||
| ### Angular UI Grid | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| This UI Grid is for AngularJS, not the modern Angular.  New projects should not | ||||
| use AngularJS.  This demo is included for legacy applications. | ||||
|  | ||||
| @ -48,7 +48,7 @@ overridden through a `package.json` override in the latest versions of NodeJS: | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| GatsbyJS collects telemetry by default. The `telemetry` subcommand can disable it: | ||||
| 
 | ||||
|  | ||||
| @ -31,7 +31,7 @@ The ["Demo"](#demo) uses NextJS and SheetJS to pull data from a spreadsheet. | ||||
| We'll explore how to create asset modules that process spreadsheet data at build | ||||
| time and how to read files on the server in NextJS lifecycle methods. | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| NextJS collects telemetry by default. The `telemetry` subcommand can disable it: | ||||
| 
 | ||||
| @ -196,7 +196,7 @@ export async function getStaticProps() { | ||||
| The [SheetJS NodeJS module](/docs/getting-started/installation/nodejs) can be | ||||
| imported from page scripts. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| [The SheetJS ESM build](/docs/getting-started/installation/nodejs#esm-import) | ||||
| does not load NodeJS native modules directly. The Installation section includes | ||||
| @ -243,7 +243,7 @@ export async function getServerSideProps() { | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| :::warning Reading and writing files during the build process | ||||
| :::danger Reading and writing files during the build process | ||||
| 
 | ||||
| As the NextJS workaround is non-traditional, it bears repeating: | ||||
| 
 | ||||
| @ -711,7 +711,7 @@ npx next export | ||||
|   </TabItem> | ||||
|   <TabItem value="14" label="NextJS 14"> | ||||
| 
 | ||||
| :::warning NextJS breaking changes | ||||
| :::danger NextJS breaking changes | ||||
| 
 | ||||
| **NextJS 14 removed the `export` subcommand!** | ||||
| 
 | ||||
|  | ||||
| @ -53,7 +53,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| Nuxt embeds telemetry. According to the docs, it can be disabled with: | ||||
| 
 | ||||
|  | ||||
| @ -36,7 +36,7 @@ flowchart LR | ||||
|   aoo --> |index.astro\ntemplate body| html | ||||
| ``` | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| AstroJS enables telemetry by default. The tool has an option to disable telemetry: | ||||
| 
 | ||||
|  | ||||
| @ -316,7 +316,7 @@ tapping "Import data from a spreadsheet", verify that the app shows new data: | ||||
| 
 | ||||
| **iOS Testing** | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **iOS testing can only be performed on Apple hardware running macOS!** | ||||
| 
 | ||||
| @ -542,7 +542,7 @@ Click on the icon and select the real device from the list. | ||||
| 
 | ||||
| ## Local Files | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| React Native does not provide a native file picker or a method for reading and | ||||
| writing data from documents on the devices. A third-party library must be used. | ||||
| @ -926,7 +926,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| There are many moving parts and pitfalls with React Native apps. It is strongly | ||||
| recommended to follow the official React Native tutorials for iOS and Android | ||||
| @ -1260,7 +1260,7 @@ npx xlsx-cli sheetjsw.xlsx | ||||
| 
 | ||||
| **iOS Testing** | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **iOS testing can only be performed on Apple hardware running macOS!** | ||||
| 
 | ||||
|  | ||||
| @ -69,7 +69,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| Before starting this demo, manually disable telemetry. | ||||
| 
 | ||||
| @ -301,16 +301,16 @@ In the last macOS test, the following output was displayed: | ||||
|   <summary><b>Expected output</b> (click to hide)</summary> | ||||
| 
 | ||||
| <pre> | ||||
| <span {...g}>✔</span> Getting environment information{'\n'} | ||||
| {'\n'} | ||||
| <b>No issues were detected.</b>{'\n'} | ||||
| <span {...g}>✔</span> Your ANDROID_HOME environment variable is set and points to correct directory.{'\n'} | ||||
| <span {...g}>✔</span> Your adb from the Android SDK is correctly installed.{'\n'} | ||||
| <span {...g}>✔</span> The Android SDK is installed.{'\n'} | ||||
| <span {...g}>✔</span> A compatible Android SDK for compilation is found.{'\n'} | ||||
| <span {...g}>✔</span> Javac is installed and is configured properly.{'\n'} | ||||
| <span {...g}>✔</span> The Java Development Kit (JDK) is installed and is configured properly.{'\n'} | ||||
| <span {...g}>✔</span> Getting NativeScript components versions information...{'\n'} | ||||
| <span {...g}>✔</span> Getting environment information | ||||
| 
 | ||||
| <b>No issues were detected.</b> | ||||
| <span {...g}>✔</span> Your ANDROID_HOME environment variable is set and points to correct directory. | ||||
| <span {...g}>✔</span> Your adb from the Android SDK is correctly installed. | ||||
| <span {...g}>✔</span> The Android SDK is installed. | ||||
| <span {...g}>✔</span> A compatible Android SDK for compilation is found. | ||||
| <span {...g}>✔</span> Javac is installed and is configured properly. | ||||
| <span {...g}>✔</span> The Java Development Kit (JDK) is installed and is configured properly. | ||||
| <span {...g}>✔</span> Getting NativeScript components versions information... | ||||
| <span {...g}>✔</span> Component nativescript has 8.6.1 version and is up to date. | ||||
| </pre> | ||||
| 
 | ||||
| @ -328,19 +328,19 @@ In the last macOS test, the following output was displayed: | ||||
|   <summary><b>Expected output</b> (click to hide)</summary> | ||||
| 
 | ||||
| <pre> | ||||
| <span {...g}>✔</span> Getting environment information{'\n'} | ||||
| {'\n'} | ||||
| <b>No issues were detected.</b>{'\n'} | ||||
| <span {...g}>✔</span> Xcode is installed and is configured properly.{'\n'} | ||||
| <span {...g}>✔</span> xcodeproj is installed and is configured properly.{'\n'} | ||||
| <span {...g}>✔</span> CocoaPods are installed.{'\n'} | ||||
| <span {...g}>✔</span> CocoaPods update is not required.{'\n'} | ||||
| <span {...g}>✔</span> CocoaPods are configured properly.{'\n'} | ||||
| <span {...g}>✔</span> Your current CocoaPods version is newer than 1.0.0.{'\n'} | ||||
| <span {...g}>✔</span> Python installed and configured correctly.{'\n'} | ||||
| <span {...g}>✔</span> The Python 'six' package is found.{'\n'} | ||||
| <span {...g}>✔</span> Xcode version 15.0.1 satisfies minimum required version 10.{'\n'} | ||||
| <span {...g}>✔</span> Getting NativeScript components versions information...{'\n'} | ||||
| <span {...g}>✔</span> Getting environment information | ||||
| 
 | ||||
| <b>No issues were detected.</b> | ||||
| <span {...g}>✔</span> Xcode is installed and is configured properly. | ||||
| <span {...g}>✔</span> xcodeproj is installed and is configured properly. | ||||
| <span {...g}>✔</span> CocoaPods are installed. | ||||
| <span {...g}>✔</span> CocoaPods update is not required. | ||||
| <span {...g}>✔</span> CocoaPods are configured properly. | ||||
| <span {...g}>✔</span> Your current CocoaPods version is newer than 1.0.0. | ||||
| <span {...g}>✔</span> Python installed and configured correctly. | ||||
| <span {...g}>✔</span> The Python 'six' package is found. | ||||
| <span {...g}>✔</span> Xcode version 15.0.1 satisfies minimum required version 10. | ||||
| <span {...g}>✔</span> Getting NativeScript components versions information... | ||||
| <span {...g}>✔</span> Component nativescript has 8.6.1 version and is up to date. | ||||
| </pre> | ||||
| 
 | ||||
| @ -619,7 +619,7 @@ The first item in the list will change. | ||||
| 
 | ||||
| ### iOS | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **iOS testing can only be performed on Apple hardware running macOS!** | ||||
| 
 | ||||
|  | ||||
| @ -63,7 +63,7 @@ The file integration uses `@awesome-cordova-plugins/file` version `6.4.0`. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| Before starting this demo, manually disable telemetry.  On Linux and MacOS: | ||||
| 
 | ||||
| @ -471,7 +471,7 @@ brew install gradle | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| When the demo was last tested on Android, reading files worked as expected. | ||||
| However, the generated files were not externally visible from the Files app. | ||||
|  | ||||
| @ -41,7 +41,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| Before starting this demo, manually disable telemetry.  On Linux and MacOS: | ||||
| 
 | ||||
|  | ||||
| @ -50,7 +50,7 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| Before starting this demo, manually disable telemetry.  On MacOS: | ||||
| 
 | ||||
|  | ||||
| @ -12,7 +12,7 @@ extensions and libraries to create a hybrid development experience.  Developers | ||||
| well-versed in web technologies can now build actual mobile applications that | ||||
| run on iOS and Android! | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **The ecosystem has broken backwards-compatibility many times!** | ||||
| 
 | ||||
|  | ||||
| @ -61,7 +61,7 @@ applications, [check the mobile demo](/docs/demos/mobile/reactnative) | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| **React Native for Windows + macOS commands include telemetry without proper** | ||||
| **disclaimer or global opt-out.** | ||||
| @ -382,7 +382,7 @@ RCT_EXPORT_METHOD(PickAndRead:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromi | ||||
| 
 | ||||
| ## Windows Demo | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| There is no simple standalone executable file at the end of the process. | ||||
| 
 | ||||
| @ -482,7 +482,7 @@ Specific Windows SDK versions can be installed through Visual Studio Installer. | ||||
| npx react-native run-windows --no-telemetry --arch=X86 | ||||
| ``` | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| The ARM64 binary is normally built with | ||||
| 
 | ||||
| @ -616,7 +616,7 @@ npx react-native run-windows --no-telemetry | ||||
| npx react-native run-windows --no-telemetry --arch=X86 | ||||
| ``` | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| The ARM64 binary is normally built with | ||||
| 
 | ||||
| @ -702,7 +702,7 @@ npx react-native run-macos | ||||
| 
 | ||||
| Close the running app from the dock and close the Metro terminal window. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| When the demo was last tested on x64, the app failed with a warning | ||||
| 
 | ||||
|  | ||||
| @ -220,7 +220,7 @@ set PATH="C:\correct\path\to\python\three";%PATH% | ||||
|   </TabItem> | ||||
|   <TabItem value="pkg" label="pkg"> | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| When this demo was last tested, `pkg` failed with an error referencing `node20`: | ||||
| 
 | ||||
|  | ||||
| @ -88,7 +88,7 @@ an array of objects. | ||||
| Queries must be manually generated from the objects. Assuming the field names | ||||
| in the object match the column headers, a loop can generate `INSERT` queries. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **PostgreSQL does not allow parameterized queries with variable column names** | ||||
| 
 | ||||
|  | ||||
| @ -92,7 +92,7 @@ an array of objects. | ||||
| Queries must be manually generated from the objects. Assuming the field names | ||||
| in the object match the column headers, a loop can generate `INSERT` queries. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **MariaDB does not allow parameterized queries with variable column names** | ||||
| 
 | ||||
|  | ||||
| @ -13,7 +13,7 @@ import Tabs from '@theme/Tabs'; | ||||
| import TabItem from '@theme/TabItem'; | ||||
| import CodeBlock from '@theme/CodeBlock'; | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **Redis has relicensed away from open source!** | ||||
| 
 | ||||
| @ -233,7 +233,7 @@ const aoa = [ ["Hash"], [key] ].concat(Object.entries(values)); | ||||
| 
 | ||||
| ## Complete Example | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| The most recent version of the `redis` node module does not work with most | ||||
| versions of NodeJS. It is "ESM-only", requiring NodeJS 18 or later. As a result, | ||||
|  | ||||
| @ -272,7 +272,7 @@ const u8 = new Uint8Array(array); | ||||
| 
 | ||||
| ## Web Browsers | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Not all web APIs are supported in all browsers.  For example, Firefox does not | ||||
| support the "File System Access API". | ||||
| @ -431,7 +431,7 @@ drop_dom_element.addEventListener("dragenter", suppress, false); | ||||
| 
 | ||||
| ### File System Access API | ||||
| 
 | ||||
| :::warning Limited Browser Support | ||||
| :::danger Limited Browser Support | ||||
| 
 | ||||
| At the time of writing, browser support was fairly limited.  Chrome introduced | ||||
| the feature in version 86.  Safari did not support File System Access API. | ||||
|  | ||||
| @ -9,7 +9,7 @@ sidebar_custom_props: | ||||
| 
 | ||||
| import CodeBlock from '@theme/CodeBlock'; | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| WebSQL is no longer enabled by default in Chrome. Chrome 123 will officially | ||||
| remove support. For SQL in the browser, there are a few alternatives: | ||||
|  | ||||
| @ -11,7 +11,7 @@ sidebar_custom_props: | ||||
|   <script type="text/javascript" src="https://unpkg.com/dexie@3.2.4/dist/dexie.js"></script> | ||||
| </head> | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| IndexedDB is a very low-level API. | ||||
| 
 | ||||
|  | ||||
| @ -33,7 +33,7 @@ This demo was last tested on 2023 September 30 using Lightning API version `58.0 | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| The Salesforce developer tools embed telemetry. It can be disabled by setting | ||||
| the environment variable `SF_DISABLE_TELEMETRY` to `true` or by running | ||||
| @ -316,7 +316,7 @@ cd SheetForce | ||||
| npx @salesforce/cli lightning generate component --type lwc -n sheetComponent -d force-app/main/default/lwc | ||||
| ``` | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| At the time of testing, the CLI tool created components with app version 59. | ||||
| This version number is not valid for scratch orgs. | ||||
| @ -501,7 +501,7 @@ The app will display the "SheetForce demo" text from the component template: | ||||
| 
 | ||||
| <ol start="16"><li><p>Download <a href={"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"}>{"https://cdn.sheetjs.com/xlsx-" + current + "/package/dist/xlsx.full.min.js"}</a></p></li></ol> | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **DO NOT "COPY AND PASTE"!**  The file should be explicitly downloaded.  Copying | ||||
| and pasting corrupts the source code and the component will fail in subtle ways. | ||||
|  | ||||
| @ -41,7 +41,7 @@ This demo was last tested on 2023 October 06. | ||||
| 
 | ||||
| ## Telemetry | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| **Each command-line tool related to Azure embeds telemetry.** | ||||
| 
 | ||||
| @ -268,7 +268,7 @@ cd SheetJSAzure | ||||
| func new --template httpTrigger --language JavaScript --name SheetJSAzure | ||||
| ``` | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| When the demo was last tested, the stock TypeScript template did not work. | ||||
| 
 | ||||
|  | ||||
| @ -129,7 +129,7 @@ the source data or artifacts from the `postprocess` script changed. | ||||
| 
 | ||||
| ### Post-Processing Data | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| The `flat-postprocessing` library includes a number of utilities for different | ||||
| data formats.  The `readXLSX` helper uses SheetJS under the hood. | ||||
|  | ||||
| @ -38,7 +38,7 @@ imported from Deno Deploy server scripts. | ||||
| 
 | ||||
| ### Supported Frameworks | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Deno Deploy does not offer any sort of temporary file access in functions. | ||||
| 
 | ||||
|  | ||||
| @ -35,7 +35,7 @@ A workbook will be assembled and exported to Excel Binary workbooks (XLSB). | ||||
| - "Exporting files": SheetJS libraries will read XLSX and ODS files exported by | ||||
| Google Sheets and generate CSV rows from every worksheet. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| It is strongly recommended to create a new Google account for testing. | ||||
| 
 | ||||
| @ -354,7 +354,7 @@ A valid phone number (for SMS verification) may be required. | ||||
| 1) Open https://console.cloud.google.com in a web browser. Review the Google | ||||
| Cloud Platform Terms of Service. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| You must agree to the Google Cloud Platform Terms of Service to use the APIs. | ||||
| 
 | ||||
|  | ||||
| @ -43,7 +43,7 @@ Excel 365 before running the demo. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| The Office Add-in CLI collects telemetry by default. It can be disabled: | ||||
| 
 | ||||
|  | ||||
| @ -148,7 +148,7 @@ SF_display("{stata import excel \"sheetjs.tmp.xlsx\", firstrow} will read the fi | ||||
| The function will print the following text to the terminal: | ||||
| 
 | ||||
| <pre> | ||||
| <span {...b}>import excel "sheetjs.tmp.xlsx", firstrow</span> will read the first sheet and use headers{'\n'} | ||||
| <span {...b}>import excel "sheetjs.tmp.xlsx", firstrow</span> will read the first sheet and use headers | ||||
| </pre> | ||||
| 
 | ||||
| The blue text is clickable. When a user clicks the text, the command | ||||
| @ -402,17 +402,17 @@ plugin call cleanfile, "pres.numbers" verbose | ||||
| The result will show the data from `pres.numbers`: | ||||
| 
 | ||||
| <pre> | ||||
| <b>. plugin call cleanfile, "pres.numbers" verbose</b>{'\n'} | ||||
| Worksheet 0 Name: Sheet1{'\n'} | ||||
| Name,Index{'\n'} | ||||
| Bill Clinton,42{'\n'} | ||||
| GeorgeW Bush,43{'\n'} | ||||
| Barack Obama,44{'\n'} | ||||
| Donald Trump,45{'\n'} | ||||
| Joseph Biden,46{'\n'} | ||||
| {'\n'} | ||||
| Saved to `sheetjs.tmp.xlsx`{'\n'} | ||||
| <span {...b}>import excel "sheetjs.tmp.xlsx", firstrow</span> will read the first sheet and use headers{'\n'} | ||||
| <b>. plugin call cleanfile, "pres.numbers" verbose</b> | ||||
| Worksheet 0 Name: Sheet1 | ||||
| Name,Index | ||||
| Bill Clinton,42 | ||||
| GeorgeW Bush,43 | ||||
| Barack Obama,44 | ||||
| Donald Trump,45 | ||||
| Joseph Biden,46 | ||||
| 
 | ||||
| Saved to `sheetjs.tmp.xlsx` | ||||
| <span {...b}>import excel "sheetjs.tmp.xlsx", firstrow</span> will read the first sheet and use headers | ||||
| for more help, see <span {...b}>import excel</span> | ||||
| </pre> | ||||
| 
 | ||||
| @ -440,7 +440,7 @@ import excel "sheetjs.tmp.xlsx", firstrow | ||||
| The output will show the import result: | ||||
| 
 | ||||
| <pre> | ||||
| <b>. import excel "sheetjs.tmp.xlsx", firstrow</b>{'\n'} | ||||
| <b>. import excel "sheetjs.tmp.xlsx", firstrow</b> | ||||
| (2 vars, 5 obs) | ||||
| </pre> | ||||
| 
 | ||||
|  | ||||
| @ -78,7 +78,7 @@ In a CommonJS context, NodeJS Streams and `fs` immediately work with SheetJS: | ||||
| const XLSX = require("xlsx"); // "just works" | ||||
| ``` | ||||
| 
 | ||||
| :::warning ECMAScript Module Machinations | ||||
| :::danger ECMAScript Module Machinations | ||||
| 
 | ||||
| In NodeJS ESM, the dependency must be loaded manually: | ||||
| 
 | ||||
|  | ||||
| @ -504,7 +504,7 @@ in the ["Large Datasets"](/docs/demos/bigdata/stream#browser) demo. | ||||
| 
 | ||||
| #### File System Access API | ||||
| 
 | ||||
| :::warning Browser Compatibility | ||||
| :::danger Browser Compatibility | ||||
| 
 | ||||
| At the time of writing, the File System Access API is only available in Chromium | ||||
| and Chromium-based browsers like Chrome and Edge. | ||||
|  | ||||
| @ -14,7 +14,7 @@ passing is straightforward. The demo shows a standalone Swift sample for MacOS. | ||||
| The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone) | ||||
| can be parsed and evaluated in a JSC context. | ||||
| 
 | ||||
| :::warning Platform Limitations | ||||
| :::danger Platform Limitations | ||||
| 
 | ||||
| JavaScriptCore is primarily deployed in MacOS and iOS applications.  There is | ||||
| some experimental support through the Bun runtime, but apps intending to support | ||||
|  | ||||
| @ -25,7 +25,7 @@ The ["Integration Example"](#integration-example) section includes a complete | ||||
| command-line tool for reading arbitrary workbooks and writing data to XLSB | ||||
| (Excel 2007+ Binary Format) workbooks. | ||||
| 
 | ||||
| :::warning Telemetry | ||||
| :::danger Telemetry | ||||
| 
 | ||||
| **The `dotnet` command embeds telemetry.** | ||||
| 
 | ||||
|  | ||||
| @ -32,7 +32,7 @@ commit `15b323d`. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| The main target for Hermes is React Native.  At the time of writing, there was | ||||
| no official documentation for embedding the Hermes engine in C++ programs. | ||||
|  | ||||
| @ -7,7 +7,7 @@ pagination_next: solutions/input | ||||
| import current from '/version.js'; | ||||
| import CodeBlock from '@theme/CodeBlock'; | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| In a production application, it is strongly recommended to use a binding for a | ||||
| more performant engine like [`v8`](/docs/demos/engines/v8#rust) | ||||
|  | ||||
| @ -7,7 +7,7 @@ pagination_next: solutions/input | ||||
| import current from '/version.js'; | ||||
| import CodeBlock from '@theme/CodeBlock'; | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| In a production application, it is strongly recommended to use a binding for a | ||||
| C engine like [`JavaScript::Duktape`](/docs/demos/engines/duktape#perl) | ||||
|  | ||||
| @ -41,7 +41,7 @@ The `readFile` method attempts to read a spreadsheet file at the supplied path. | ||||
| The second `opts` argument is optional. ["Parsing Options"](/docs/api/parse-options) | ||||
| covers the supported properties and behaviors. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Browsers generally do not allow reading files by specifying filename (it is a | ||||
| security risk), and running `XLSX.readFile` in the browser will throw an error. | ||||
|  | ||||
| @ -142,7 +142,7 @@ worker.addEventListener('message', function(e) { | ||||
| <details> | ||||
|   <summary><b>SWF workaround for Windows 95+</b> (click to show)</summary> | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| Each moving part in this solution has been deprecated years ago: | ||||
| 
 | ||||
|  | ||||
| @ -652,7 +652,7 @@ strings instead of `Date` objects. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| JavaScript string to `Date` conversion is "implementation-dependent" and may | ||||
| misinterpret some date formats. When designing APIs, it is strongly recommended | ||||
|  | ||||
| @ -247,7 +247,7 @@ XLSX documents.  A workaround was added in library version 0.18.12. | ||||
| Tooltips are attached to hyperlink information. There is no way to specify a | ||||
| tooltip without assigning a cell link. | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **Excel has an undocumented tooltip length limit of 255 characters.** | ||||
| 
 | ||||
|  | ||||
| @ -35,7 +35,7 @@ outline levels above the grid. | ||||
| SheetJS worksheet objects store column properties in the `!cols` field. It is | ||||
| expected to be an array of column metadata objects. | ||||
| 
 | ||||
| :::warning Excel Bugs | ||||
| :::danger Excel Bugs | ||||
| 
 | ||||
| For most common formats (XLSX, XLS), widths are tied to font metrics, which are | ||||
| tied to Windows Scaling settings. In Windows 11, the Scale factor settings are | ||||
|  | ||||
| @ -244,7 +244,7 @@ Old versions of the library did not automatically detect `ArrayBuffer` objects. | ||||
| <details> | ||||
|   <summary><b>Workaround</b> (click to show)</summary> | ||||
| 
 | ||||
| :::warning Legacy workaround | ||||
| :::danger Legacy workaround | ||||
| 
 | ||||
| This solution is not recommended for production deployments.  Native support | ||||
| for `ArrayBuffer` was added in library version `0.9.9`. | ||||
|  | ||||
| @ -103,7 +103,7 @@ wsl --install Ubuntu | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::warning pass | ||||
| :::danger pass | ||||
| 
 | ||||
| **WSL will not run in a Windows on ARM VM on computers with the M1 CPU** | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user