forked from sheetjs/docs.sheetjs.com
		
	ventura
This commit is contained in:
		
							parent
							
								
									2e540f5b15
								
							
						
					
					
						commit
						866ebabc68
					
				| @ -182,8 +182,8 @@ Complete Examples are included [in the "Dojo" demo](/docs/demos/frontend/legacy# | ||||
| 
 | ||||
| ## esbuild | ||||
| 
 | ||||
| The `xlsx.mjs` source file are written in a subset of ES6 that `esbuild` | ||||
| understands and is able to transpile down for older browsers. | ||||
| The `xlsx.mjs` source file uses a subset of ES6 that `esbuild` understands and | ||||
| is able to transpile for older browsers. | ||||
| 
 | ||||
| Both the `node` and `browser` platforms work out of the box. | ||||
| 
 | ||||
| @ -971,15 +971,7 @@ As it uses `fetch`, this demo requires Node 18. | ||||
| 
 | ||||
| ## Vite | ||||
| 
 | ||||
| :::caution | ||||
| 
 | ||||
| ViteJS adopted nascent `package.json` patterns. Version 0.18.10 implements the | ||||
| patterns required for ViteJS 3.0.3. These patterns are evolving and a future | ||||
| version of ViteJS may require more packaging changes. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| ViteJS 3.0.3 is known to work with SheetJS version 0.18.10. | ||||
| ViteJS is compatible with SheetJS versions starting from 0.18.10. | ||||
| 
 | ||||
| <details><summary><b>Complete Example</b> (click to show)</summary> | ||||
| 
 | ||||
| @ -1095,6 +1087,23 @@ set_cptable(cptable); | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::caution | ||||
| 
 | ||||
| Some older webpack projects will throw an error in the browser: | ||||
| 
 | ||||
| ``` | ||||
| require is not defined             (xlsx.mjs) | ||||
| ``` | ||||
| 
 | ||||
| This was a bug in Webpack and affected projects built with `create-react-app`. | ||||
| If upgrading Webpack is not feasible, explicitly import the standalone builds: | ||||
| 
 | ||||
| ```js | ||||
| import * as XLSX from 'xlsx/dist/xlsx.full.min.js'; | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| <details><summary><b>Complete Example</b> (click to show)</summary> | ||||
| 
 | ||||
| 1) Install the tarball using a package manager: | ||||
|  | ||||
| @ -230,7 +230,8 @@ then restart the development process. | ||||
|       <q-file label="Load File" filled label-color="orange" @input="updateFile"/> | ||||
|       <q-btn label="Save File" @click="saveFile" /> | ||||
|     </q-btn-group> | ||||
|     <!-- highlight-end -->  </q-page> | ||||
|     <!-- highlight-end --> | ||||
|   </q-page> | ||||
| </template> | ||||
| ``` | ||||
| 
 | ||||
|  | ||||
| @ -24,45 +24,28 @@ runtime as well as user JS code. | ||||
| When compiling, the `--allow-read` option must be specified to allow the script | ||||
| to read files from the filesystem with `Deno.readFileSync`. | ||||
| 
 | ||||
| <details><summary><b>Complete Example</b> (click to show)</summary> | ||||
| <https://docs.sheetjs.com/cli/sheet2csv.ts> can be compiled and run from Deno: | ||||
| 
 | ||||
| 1) Save the following script to `sheet2csv.ts`: | ||||
| 
 | ||||
| ```ts title="sheet2csv.ts" | ||||
| /*! sheetjs (C) 2013-present SheetJS -- https://sheetjs.com */ | ||||
| // @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts" | ||||
| import * as XLSX from 'https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs'; | ||||
| import * as cptable from 'https://cdn.sheetjs.com/xlsx-latest/package/dist/cpexcel.full.mjs'; | ||||
| XLSX.set_cptable(cptable); | ||||
| 
 | ||||
| /* Read and parse workbook */ | ||||
| const filename = Deno.args[0]; | ||||
| if(!filename) { | ||||
|   console.error("usage: sheet2csv <filename> [sheetname]"); | ||||
|   Deno.exit(1); | ||||
| } | ||||
| const workbook = XLSX.readFile(filename); | ||||
| 
 | ||||
| /* Find worksheet */ | ||||
| const sheetname = Deno.args[1] || workbook.SheetNames[0]; | ||||
| if(!workbook.Sheets[sheetname]) { | ||||
|   console.error(`error: workbook missing sheet ${sheetname}`); | ||||
|   Deno.exit(1); | ||||
| } | ||||
| 
 | ||||
| /* Generate CSV and print to stdout */ | ||||
| console.log(XLSX.utils.sheet_to_csv(workbook.Sheets[sheetname])); | ||||
| ``` | ||||
| 
 | ||||
| 2) Build `sheet2csv` with `deno compile`: | ||||
| 0) Download the test file <https://sheetjs.com/pres.numbers>: | ||||
| 
 | ||||
| ```bash | ||||
| deno compile -r --allow-read sheet2csv.ts | ||||
| curl -LO https://sheetjs.com/pres.numbers | ||||
| ``` | ||||
| 
 | ||||
| `sheet2csv` is a generated executable that you can run. | ||||
| 1) Test the script with `deno run`: | ||||
| 
 | ||||
| </details> | ||||
| ```bash | ||||
| deno run -r --allow-read https://docs.sheetjs.com/cli/sheet2csv.ts pres.numbers | ||||
| ``` | ||||
| 
 | ||||
| If this worked, the program will print a CSV of the first worksheet. | ||||
| 
 | ||||
| 2) Compile and run `sheet2csv`: | ||||
| 
 | ||||
| ```bash | ||||
| deno compile -r --allow-read https://docs.sheetjs.com/cli/sheet2csv.ts | ||||
| ./sheet2csv pres.numbers | ||||
| ``` | ||||
| 
 | ||||
| ## NodeJS | ||||
| 
 | ||||
|  | ||||
| @ -148,6 +148,28 @@ export default { | ||||
| }; | ||||
| ``` | ||||
| 
 | ||||
| #### "require is not defined" | ||||
| 
 | ||||
| This error will be displayed in the browser console and will point to `xlsx.mjs` | ||||
| 
 | ||||
| Older versions of Webpack do not support `mjs` for ECMAScript Modules.  This | ||||
| typically affects older `create-react-app` projects. | ||||
| 
 | ||||
| [The "Standalone" build](/docs/getting-started/installation/standalone) should | ||||
| be loaded using `require` or `import`: | ||||
| 
 | ||||
| _CommonJS_ | ||||
| 
 | ||||
| ```js | ||||
| var XLSX = require("xlsx/dist/xlsx.full.min"); | ||||
| ``` | ||||
| 
 | ||||
| _ECMAScript Modules_ | ||||
| 
 | ||||
| ```js | ||||
| import * as XLSX from "xlsx/dist/xlsx.full.min.js"; | ||||
| ``` | ||||
| 
 | ||||
| #### SCRIPT5022: DataCloneError | ||||
| 
 | ||||
| IE10 does not properly support `Transferable`. | ||||
|  | ||||
| @ -40,7 +40,9 @@ These instructions were tested on the following platforms: | ||||
| | Platform                      | Test Date  | | ||||
| |:------------------------------|:-----------| | ||||
| | Linux (Steam Deck Holo 3.4.6) | 2023-04-04 | | ||||
| | Linux (Ubuntu 18.04 aarch64)  | 2023-04-13 | | ||||
| | MacOS 10.13 (x64)             | 2023-04-04 | | ||||
| | MacOS 13.0 (arm64)            | 2023-04-13 | | ||||
| | Windows 10 (x64) + WSL Ubuntu | 2023-01-14 | | ||||
| | Windows 11 (x64) + WSL Ubuntu | 2023-04-04 | | ||||
| 
 | ||||
| @ -148,11 +150,12 @@ local testing, macOS 10.13 required NodeJS version `12.22.12` | ||||
|   </TabItem> | ||||
|   <TabItem value="l" label="Linux"> | ||||
| 
 | ||||
| A) Install `mercurial`, `git`, and `subversion` using the system package | ||||
| A) Install `curl`, `mercurial`, `git`, and `subversion` using the system package | ||||
| manager. On Debian and Ubuntu systems, `apt-get` installs packages: | ||||
| 
 | ||||
| ```bash | ||||
| sudo apt-get install git mercurial subversion | ||||
| sudo apt update | ||||
| sudo apt-get install curl git mercurial subversion | ||||
| ``` | ||||
| 
 | ||||
| Other Linux distributions may use other package managers. | ||||
| @ -197,6 +200,10 @@ After installing mercurial and subversion, install NodeJS. | ||||
| [The official NodeJS site](https://nodejs.org/en/download/) provides installers | ||||
| for "LTS" and "Current" releases.  The "LTS" version should be installed. | ||||
| 
 | ||||
| After installing, if running `node` in the terminal fails with a `glibc` error, | ||||
| an older version of NodeJS should be installed.  For example, Ubuntu 18.04 does | ||||
| not support Node 18 support Node 16.20.0. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|   </TabItem> | ||||
|  | ||||
							
								
								
									
										24
									
								
								docz/static/cli/sheet2csv.ts
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										24
									
								
								docz/static/cli/sheet2csv.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| #!/usr/bin/env -S deno run --allow-read | ||||
| /*! sheetjs (C) 2013-present SheetJS -- https://sheetjs.com */ | ||||
| // @deno-types="https://cdn.sheetjs.com/xlsx-latest/package/types/index.d.ts"
 | ||||
| import * as XLSX from 'https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs'; | ||||
| import * as cptable from 'https://cdn.sheetjs.com/xlsx-latest/package/dist/cpexcel.full.mjs'; | ||||
| XLSX.set_cptable(cptable); | ||||
| 
 | ||||
| /* Read and parse workbook */ | ||||
| const filename = Deno.args[0]; | ||||
| if(!filename) { | ||||
|   console.error("usage: sheet2csv <filename> [sheetname]"); | ||||
|   Deno.exit(1); | ||||
| } | ||||
| const workbook = XLSX.readFile(filename); | ||||
| 
 | ||||
| /* Find worksheet */ | ||||
| const sheetname = Deno.args[1] || workbook.SheetNames[0]; | ||||
| if(!workbook.Sheets[sheetname]) { | ||||
|   console.error(`error: workbook missing sheet ${sheetname}`); | ||||
|   Deno.exit(1); | ||||
| } | ||||
| 
 | ||||
| /* Generate CSV and print to stdout */ | ||||
| console.log(XLSX.utils.sheet_to_csv(workbook.Sheets[sheetname])); | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user