| 
									
										
										
										
											2022-05-16 03:26:04 +00:00
										 |  |  | --- | 
					
						
							| 
									
										
										
										
											2022-08-24 23:48:22 +00:00
										 |  |  | pagination_prev: getting-started/index | 
					
						
							|  |  |  | pagination_next: getting-started/example | 
					
						
							| 
									
										
										
										
											2022-08-31 06:46:03 +00:00
										 |  |  | sidebar_position: 6 | 
					
						
							| 
									
										
										
										
											2022-05-16 03:26:04 +00:00
										 |  |  | sidebar_custom_props: | 
					
						
							|  |  |  |   summary: Import ECMAScript Modules and TypeScript definitions | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import current from '/version.js'; | 
					
						
							| 
									
										
										
										
											2022-11-08 23:16:40 +00:00
										 |  |  | import Tabs from '@theme/Tabs'; | 
					
						
							|  |  |  | import TabItem from '@theme/TabItem'; | 
					
						
							| 
									
										
										
										
											2022-05-16 03:26:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Deno
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-08 23:16:40 +00:00
										 |  |  | Module scripts and type definitions are available at <https://cdn.sheetjs.com/>. | 
					
						
							| 
									
										
										
										
											2022-05-16 03:26:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Using the URL imports, `deno run` will automatically download scripts and types: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre><code parentName="pre" {...{"className": "language-ts"}}>{`\ | 
					
						
							|  |  |  | // @deno-types="https://cdn.sheetjs.com/xlsx-${current}/package/types/index.d.ts" | 
					
						
							|  |  |  | import * as XLSX from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs';`} | 
					
						
							|  |  |  | </code></pre> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-05 22:43:44 +00:00
										 |  |  | The `@deno-types` comment instructs Deno to use the type definitions. | 
					
						
							| 
									
										
										
										
											2022-05-16 03:26:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-08 23:16:40 +00:00
										 |  |  | :::caution Deno support is considered experimental. | 
					
						
							| 
									
										
										
										
											2022-07-06 05:38:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-08 23:16:40 +00:00
										 |  |  | Great open source software grows with user tests and reports. Any issues should | 
					
						
							|  |  |  | be reported to the Deno project for further diagnosis. | 
					
						
							| 
									
										
										
										
											2022-07-06 05:38:24 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ::: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-26 19:21:53 +00:00
										 |  |  | ## Encoding support
 | 
					
						
							| 
									
										
										
										
											2022-06-05 22:43:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-26 19:21:53 +00:00
										 |  |  | If Encoding support is required, `cpexcel.full.mjs` must be manually imported: | 
					
						
							| 
									
										
										
										
											2022-05-16 03:26:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | <pre><code parentName="pre" {...{"className": "language-ts"}}>{`\ | 
					
						
							|  |  |  | /* load the codepage support library for extended support with older formats  */ | 
					
						
							|  |  |  | import * as cptable from 'https://cdn.sheetjs.com/xlsx-${current}/package/dist/cpexcel.full.mjs'; | 
					
						
							|  |  |  | XLSX.set_cptable(cptable);`} | 
					
						
							|  |  |  | </code></pre> | 
					
						
							| 
									
										
										
										
											2022-11-08 23:16:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Node Compatibility Mode
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :::caution | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Node Compatibility Mode is useful for migrating existing NodeJS scripts to Deno. | 
					
						
							|  |  |  | It is considered unstable by the platform developers. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For greenfield Deno projects, HTTP imports are strongly recommended. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ::: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The ["NodeJS" installation section](/docs/getting-started/installation/nodejs) | 
					
						
							|  |  |  | includes instructions for installing the NodeJS package. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | After installing, the `std/node` require can be used directly: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```ts | 
					
						
							|  |  |  | /* load the `require` machinery */ | 
					
						
							|  |  |  | import { createRequire } from "https://deno.land/std/node/module.ts"; | 
					
						
							|  |  |  | const require = createRequire(import.meta.url); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* require the library */ | 
					
						
							|  |  |  | const XLSX = require("xlsx"); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Upgrade Notes
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Upgrading to the latest version involves changing the import URLs.  The import | 
					
						
							|  |  |  | and the types URLs should be updated at the same time: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre><code parentName="pre" {...{"className": "language-diff"}}>{`\ | 
					
						
							|  |  |  | -// @deno-types="https://cdn.sheetjs.com/xlsx-0.18.3/package/types/index.d.ts" | 
					
						
							|  |  |  | +// @deno-types="https://cdn.sheetjs.com/xlsx-${current}/package/types/index.d.ts" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -import * as XLSX from 'https://cdn.sheetjs.com/xlsx-0.18.3/package/xlsx.mjs'; | 
					
						
							|  |  |  | +import * as XLSX from 'https://cdn.sheetjs.com/xlsx-${current}/package/xlsx.mjs'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -import * as cptable from 'https://cdn.sheetjs.com/xlsx-0.18.3/package/dist/cpexcel.full.mjs'; | 
					
						
							|  |  |  | +import * as cptable from 'https://cdn.sheetjs.com/xlsx-${current}/package/dist/cpexcel.full.mjs'; | 
					
						
							|  |  |  | `} | 
					
						
							|  |  |  | </code></pre> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #### Deno Registry
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | :::warning | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The official Deno registry is out of date.  This is a registry bug. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <https://cdn.sheetjs.com/> is the authoritative source for SheetJS scripts. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ::: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-13 20:45:13 +00:00
										 |  |  | Applications using the Deno registry can migrate by changing the URLs.  After | 
					
						
							|  |  |  | migrating, it is easy to update by changing the version number. | 
					
						
							| 
									
										
										
										
											2022-11-08 23:16:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | <Tabs> | 
					
						
							|  |  |  |   <TabItem value="v" label="URL with version"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The SheetJS CDN version has no `v`.  For example, `v0.18.3` maps to `0.18.3`: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```diff | 
					
						
							|  |  |  | -// @deno-types="https://deno.land/x/sheetjs@v0.18.3/types/index.d.ts" | 
					
						
							|  |  |  | +// @deno-types="https://cdn.sheetjs.com/xlsx-0.18.3/package/types/index.d.ts" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -import * as XLSX from 'https://deno.land/x/sheetjs@v0.18.3/xlsx.mjs'; | 
					
						
							|  |  |  | +import * as XLSX from 'https://cdn.sheetjs.com/xlsx-0.18.3/package/xlsx.mjs'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -import * as cptable from 'https://deno.land/x/sheetjs@v0.18.3/dist/cpexcel.full.mjs'; | 
					
						
							|  |  |  | +import * as cptable from 'https://cdn.sheetjs.com/xlsx-0.18.3/package/dist/cpexcel.full.mjs'; | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   </TabItem> | 
					
						
							|  |  |  |   <TabItem value="nov" label="URL without version"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Version-less imports (`https://deno.land/x/sheetjs/xlsx.mjs`) map to `0.18.3`: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```diff | 
					
						
							|  |  |  | -// @deno-types="https://deno.land/x/sheetjs/types/index.d.ts" | 
					
						
							|  |  |  | +// @deno-types="https://cdn.sheetjs.com/xlsx-0.18.3/package/types/index.d.ts" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -import * as XLSX from 'https://deno.land/x/sheetjs/xlsx.mjs'; | 
					
						
							|  |  |  | +import * as XLSX from 'https://cdn.sheetjs.com/xlsx-0.18.3/package/xlsx.mjs'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -import * as cptable from 'https://deno.land/x/sheetjs/dist/cpexcel.full.mjs'; | 
					
						
							|  |  |  | +import * as cptable from 'https://cdn.sheetjs.com/xlsx-0.18.3/package/dist/cpexcel.full.mjs'; | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   </TabItem> | 
					
						
							|  |  |  | </Tabs> |