cmds
This commit is contained in:
		
							parent
							
								
									ae2a3e7177
								
							
						
					
					
						commit
						e2c377d208
					
				| @ -24,6 +24,16 @@ The `latest` tag references the latest version and updates with each release: | ||||
| <script lang="javascript" src="https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js"></script> | ||||
| ``` | ||||
| 
 | ||||
| :::warning  | ||||
| 
 | ||||
| A number of CDNs host older versions of the SheetJS libraries.  Due to syncing | ||||
| issues, they are generally out of date. | ||||
| 
 | ||||
| They are known CDN bugs. | ||||
| 
 | ||||
| <https://cdn.sheetjs.com/> is the authoritative source for SheetJS modules. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| ## Browser Scripts | ||||
| 
 | ||||
|  | ||||
| @ -18,17 +18,17 @@ proper ECMAScript Module release which can be optimized with developer tools. | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| @ -39,6 +39,40 @@ Once installed, the library can be imported under the name `xlsx`: | ||||
| import { read, writeFileXLSX } from "xlsx"; | ||||
| ``` | ||||
| 
 | ||||
| :::warning | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| This is a known registry bug | ||||
| 
 | ||||
| <https://cdn.sheetjs.com/> is the authoritative source for SheetJS scripts. | ||||
| 
 | ||||
| For existing projects, the easiest approach is to uninstall and reinstall: | ||||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm rm --save xlsx | ||||
| $ npm i --save file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm rm xlsx | ||||
| $ pnpm install file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn remove xlsx | ||||
| $ yarn add file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| ## XLS Support | ||||
| 
 | ||||
| If XLS support is required, `cpexcel.full.mjs` must be manually imported: | ||||
|  | ||||
| @ -23,21 +23,55 @@ Tarballs can be directly installed using a package manager: | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| :::warning | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| This is a known registry bug | ||||
| 
 | ||||
| <https://cdn.sheetjs.com/> is the authoritative source for SheetJS scripts. | ||||
| 
 | ||||
| For existing projects, the easiest approach is to uninstall and reinstall: | ||||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm rm --save xlsx | ||||
| $ npm i --save file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm rm xlsx | ||||
| $ pnpm install file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn remove xlsx | ||||
| $ yarn add file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| ### Vendoring | ||||
| 
 | ||||
| For general stability, "vendoring" modules is the recommended approach: | ||||
| @ -53,17 +87,17 @@ For general stability, "vendoring" modules is the recommended approach: | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save file:vendor/xlsx-${current}.tgz`} | ||||
| $ npm i --save file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save file:vendor/xlsx-${current}.tgz`} | ||||
| $ pnpm install file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save file:vendor/xlsx-${current}.tgz`} | ||||
| $ yarn add  file:vendor/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
|  | ||||
| @ -46,17 +46,17 @@ Web Worker scripts can be bundled using the same approach. | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| @ -98,17 +98,17 @@ local testing, a bundled script can save tens of milliseconds per run. | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| @ -186,17 +186,17 @@ Both the `node` and `browser` platforms work out of the box. | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| @ -264,17 +264,17 @@ npx http-server . | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| @ -405,17 +405,17 @@ document.getElementById("xport").onclick = async() => { | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| @ -442,17 +442,17 @@ Snowpack works with no caveats. | ||||
| <Tabs> | ||||
|   <TabItem value="npm" label="npm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="pnpm" label="pnpm"> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ pnpm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ pnpm install https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
|   <TabItem value="yarn" label="Yarn" default> | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ yarn add --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ yarn add https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
|  | ||||
| @ -224,6 +224,42 @@ function SheetJSQLWriter() { | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### DSV Interchange | ||||
| 
 | ||||
| Many databases offer utilities for reading and writing CSV, pipe-separated | ||||
| documents, and other simple data files. They enable workflows where the library | ||||
| generates CSV data for the database to process or where the library parses CSV | ||||
| files created by the database. | ||||
| 
 | ||||
| #### Worksheets to CSVs | ||||
| 
 | ||||
| CSV data can be generated from worksheets using `XLSX.utils.sheet_to_csv`. | ||||
| 
 | ||||
| ```js | ||||
| // starting from a worksheet object | ||||
| const csv = XLSX.utils.sheet_to_json(ws); | ||||
| 
 | ||||
| // whole workbook conversion | ||||
| const csv_arr = wb.SheetNames.map(n => XLSX.utils.sheet_to_json(wb.Sheets[n])); | ||||
| ``` | ||||
| 
 | ||||
| #### CSVs to Worksheets | ||||
| 
 | ||||
| `XLSX.read` can read strings with CSV data.  It will generate single-sheet | ||||
| workbooks with worksheet name `Sheet1`. | ||||
| 
 | ||||
| Where supported, `XLSX.readFile` can read files. | ||||
| 
 | ||||
| ```js | ||||
| // starting from a CSV string | ||||
| const ws_str = XLSX.read(csv_str, {type: "string"}).Sheets.Sheet1; | ||||
| 
 | ||||
| // starting from a CSV binary string (e.g. `FileReader#readAsBinaryString`) | ||||
| const ws_bstr = XLSX.read(csv_bstr, {type: "binary"}).Sheets.Sheet1; | ||||
| 
 | ||||
| // starting from a CSV file in NodeJS or Bun or Deno | ||||
| const ws_file = XLSX.readFile("test.csv").Sheets.Sheet1; | ||||
| ``` | ||||
| 
 | ||||
| ## Databases | ||||
| 
 | ||||
|  | ||||
| @ -48,7 +48,8 @@ The demo projects include small runnable examples and short explainers. | ||||
| - [`Other JavaScript Engines`](https://github.com/SheetJS/SheetJS/tree/master/demos/altjs/) | ||||
| - [`"serverless" functions`](https://github.com/SheetJS/SheetJS/tree/master/demos/function/) | ||||
| - [`sqlite3`](./database#sqlite) | ||||
| - [`Databases and Key/Value Stores`](https://github.com/SheetJS/SheetJS/tree/master/demos/database/) | ||||
| - [`Databases and Structured Data Stores`](./database) | ||||
| - [`NoSQL, K/V, and Unstructured Data Stores`](./nosql) | ||||
| - [`Legacy Internet Explorer`](https://github.com/SheetJS/SheetJS/tree/master/demos/oldie/) | ||||
| 
 | ||||
| ### Bundlers and Tooling | ||||
|  | ||||
| @ -89,7 +89,7 @@ XLSX.writeFile(wb, "textport.numbers", {numbers: XLSX_ZAHL_PAYLOAD, compression: | ||||
| After installing the package: | ||||
| 
 | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
| 
 | ||||
| The scripts will be available at `xlsx/dist/xlsx.zahl` (CommonJS) and | ||||
| @ -113,7 +113,7 @@ XLSX.writeFile(wb, "textport.numbers", {numbers: XLSX_ZAHL_PAYLOAD, compression: | ||||
| After installing the package: | ||||
| 
 | ||||
| <pre><code parentName="pre" {...{"className": "language-bash"}}>{`\ | ||||
| $ npm install --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| $ npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz`} | ||||
| </code></pre> | ||||
| 
 | ||||
| The scripts will be available at `xlsx/dist/xlsx.zahl` (CommonJS) and | ||||
|  | ||||
| @ -106,7 +106,7 @@ NodeJS installers can be found at <https://nodejs.org/en/download/> | ||||
| npm install | ||||
| 
 | ||||
| # Install global dependencies | ||||
| sudo npm install -g mocha@2.5.3 voc @sheetjs/uglify-js | ||||
| sudo npm i -g mocha@2.5.3 voc @sheetjs/uglify-js | ||||
| ``` | ||||
| 
 | ||||
| 2) Initialize the test files: | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user