forked from sheetjs/docs.sheetjs.com
		
	windows
This commit is contained in:
		
							parent
							
								
									972d4eed27
								
							
						
					
					
						commit
						89ddafaaeb
					
				| @ -1,5 +1,7 @@ | ||||
| --- | ||||
| title: Adobe Apps | ||||
| title: Photoshop and Creative Suite | ||||
| pagination_prev: demos/server | ||||
| pagination_next: demos/gsheet | ||||
| --- | ||||
| 
 | ||||
| import Tabs from '@theme/Tabs'; | ||||
| @ -185,4 +187,3 @@ extension HTML | ||||
| UXP officially recommends `require` and NodeJS Modules for third party support. | ||||
| 
 | ||||
| [Use the "Frameworks" instructions to download.](/docs/getting-started/installation/frameworks) | ||||
| 
 | ||||
| @ -1,5 +1,7 @@ | ||||
| --- | ||||
| title: Chrome Extensions | ||||
| title: Chrome and Chromium | ||||
| pagination_prev: demos/server | ||||
| pagination_next: demos/gsheet | ||||
| --- | ||||
| 
 | ||||
| :::warning | ||||
| @ -1,5 +1,7 @@ | ||||
| --- | ||||
| title: Excel JavaScript API | ||||
| pagination_prev: demos/server | ||||
| pagination_next: demos/gsheet | ||||
| --- | ||||
| 
 | ||||
| :::info | ||||
| @ -48,22 +50,7 @@ Run `yo office` from the command line.  It will ask a few questions. | ||||
| 
 | ||||
| - "What do you want to name your add-in?": "SheetJSImport" | ||||
| 
 | ||||
| You will see a screen like | ||||
| 
 | ||||
| ``` | ||||
| ? Choose a project type: Excel Custom Functions Add-in project | ||||
| ? Choose a script type: JavaScript | ||||
| ? What do you want to name your add-in? SheetJSImport | ||||
| 
 | ||||
| ---------------------------------------------------------------------------------- | ||||
| 
 | ||||
|       Creating SheetJSImport add-in for Excel using JavaScript and Excel-functions | ||||
| at C:\Users\SheetJS\Documents\SheetJSImport | ||||
| 
 | ||||
| ---------------------------------------------------------------------------------- | ||||
| ``` | ||||
| 
 | ||||
| It helpfully prints out the next steps: | ||||
| The script will create a new project and helpfully print the next steps: | ||||
| 
 | ||||
| ```powershell | ||||
| cd SheetJSImport | ||||
| @ -102,7 +89,8 @@ function version() { | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| The `manifest.xml` should also be updated to reflect the function namespace: | ||||
| The `manifest.xml` should also be updated to reflect the function namespace. | ||||
| Search for `Functions.NameSpace` in the file and replace the line with: | ||||
| 
 | ||||
| ```xml | ||||
|         <bt:String id="Functions.Namespace" DefaultValue="SHEETJS"/> | ||||
| @ -231,8 +219,8 @@ async function extern() { | ||||
|     /* get and return data */ | ||||
|     var ws = wb.Sheets[wb.SheetNames[0]]; // get first worksheet | ||||
|     var aoa = XLSX.utils.sheet_to_json(ws, { header: 1 }); // get data as array of arrays | ||||
|     return [[url]]; | ||||
|   } catch(e) { return [[e]]; } // pass error back to Excel | ||||
|     return aoa; | ||||
|   } catch(e) { return [[e.message || e]]; } // pass error back to Excel | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| @ -244,5 +232,9 @@ should pull in the data and generate a dynamic array: | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| :::note | ||||
| 
 | ||||
| [SheetJS Pro](https://sheetjs.com/pro) offers additional features that can be | ||||
| used in Excel Custom Functions and Add-ins | ||||
| 
 | ||||
| ::: | ||||
							
								
								
									
										5
									
								
								docz/docs/03-demos/10-extensions/_category_.json
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										5
									
								
								docz/docs/03-demos/10-extensions/_category_.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| { | ||||
|   "label": "App Extensions", | ||||
|   "position": 10, | ||||
|   "collapsed": false | ||||
| } | ||||
							
								
								
									
										24
									
								
								docz/docs/03-demos/10-extensions/index.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										24
									
								
								docz/docs/03-demos/10-extensions/index.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| --- | ||||
| title: Extensions | ||||
| pagination_prev: demos/server | ||||
| pagination_next: demos/gsheet | ||||
| --- | ||||
| 
 | ||||
| import DocCardList from '@theme/DocCardList'; | ||||
| import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; | ||||
| 
 | ||||
| Thanks to the broad availability of powerful engines, JavaScript is a popular | ||||
| language for writing extensions for apps. Some applications like Chromium use V8 | ||||
| while others use engines that only support ES3 JavaScript. With conservative use | ||||
| of modern language features, SheetJS can be used in many app extensions. | ||||
| 
 | ||||
| Demos for common apps are included in separate pages: | ||||
| 
 | ||||
| <ul>{useCurrentSidebarCategory().items.map((item, index) => { | ||||
|   const listyle = (item.customProps?.icon) ? { | ||||
|     listStyleImage: `url("${item.customProps.icon}")` | ||||
|   } : {}; | ||||
|   return (<li style={listyle} {...(item.customProps?.class ? {className: item.customProps.class}: {})}> | ||||
|     <a href={item.href}>{item.label}</a>{item.customProps?.summary && (" - " + item.customProps.summary)} | ||||
|   </li>); | ||||
| })}</ul> | ||||
| @ -1,5 +1,6 @@ | ||||
| --- | ||||
| title: Google Sheets | ||||
| pagination_prev: demos/extensions/index | ||||
| --- | ||||
| 
 | ||||
| import Tabs from '@theme/Tabs'; | ||||
|  | ||||
| @ -28,7 +28,14 @@ Folders: | ||||
| 
 | ||||
| After cloning the repo, running `make help` will display a list of commands. | ||||
| 
 | ||||
| ## OS-Specific Setup | ||||
| ## Setup | ||||
| 
 | ||||
| These instructions will cover system configuration, cloning the source repo, | ||||
| building, reproducing official releases, and running NodeJS and browser tests. | ||||
| 
 | ||||
| ### Install dependencies | ||||
| 
 | ||||
| #### OS-Specific Setup | ||||
| 
 | ||||
| import Tabs from '@theme/Tabs'; | ||||
| import TabItem from '@theme/TabItem'; | ||||
| @ -36,9 +43,7 @@ import TabItem from '@theme/TabItem'; | ||||
| <Tabs> | ||||
|   <TabItem value="wsl" label="Windows WSL"> | ||||
| 
 | ||||
| The MacOS/Linux workflow works in WSL.  Initial setup is involved: | ||||
| 
 | ||||
| 1) Install mercurial and subversion. | ||||
| A) Install mercurial and subversion. | ||||
| 
 | ||||
| ```bash | ||||
| # Install support programs for the build and test commands | ||||
| @ -48,21 +53,23 @@ sudo apt-get install mercurial subversion | ||||
| sudo add-apt-repository --remove ppa:mercurial-ppa/releases | ||||
| ``` | ||||
| 
 | ||||
| 2) Install NodeJS | ||||
| B) Install NodeJS | ||||
| 
 | ||||
| ```bash | ||||
| # Install bootstrap NodeJS and NPM within the WSL | ||||
| curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - | ||||
| sudo apt-get install -y nodejs | ||||
| ``` | ||||
| 
 | ||||
| # CLOSE AND REOPEN SHELL BEFORE CONTINUING | ||||
| Exit the WSL window and open a new one before proceeding: | ||||
| 
 | ||||
| ```bash | ||||
| # Switch to `n`-managed NodeJS | ||||
| sudo npm i -g n | ||||
| sudo n 16 | ||||
| ``` | ||||
| 
 | ||||
| 3) Build and install a version of Git with proper SSL support: | ||||
| C) Build and install a version of Git with proper SSL support: | ||||
| 
 | ||||
| ```bash | ||||
| # Git does not support OpenSSL out of the box, must do this | ||||
| @ -71,15 +78,47 @@ chmod +x compile-git-with-openssl.sh | ||||
| ./compile-git-with-openssl.sh | ||||
| ``` | ||||
| 
 | ||||
| (instructions continued in the MacOS/Linux part) | ||||
| D) Set `git` config `core.autocrlf` setting to `false`. The following commands | ||||
| should be run twice, once within PowerShell and once within WSL bash: | ||||
| 
 | ||||
| ```powershell | ||||
| git config --global --add core.autocrlf false | ||||
| git config --global --unset core.autocrlf true | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="osx" label="MacOS/Linux"> | ||||
|   <TabItem value="osx" label="MacOS"> | ||||
| 
 | ||||
| Initial setup: | ||||
| A) Run `git`. If Xcode or the command-line tools are not installed, you will be | ||||
| asked to install.  Click "Install" and run through the steps. | ||||
| 
 | ||||
| 0) Ensure mercurial, subversion, and NodeJS are installed. The WSL instructions | ||||
| will have installed these dependencies, so WSL users can skip to step 1. | ||||
| B) Open a terminal window and install Homebrew: | ||||
| 
 | ||||
| ```bash | ||||
| /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||||
| ``` | ||||
| 
 | ||||
| C) Close the window, open a new terminal window, and disable analytics: | ||||
| 
 | ||||
| ```bash | ||||
| brew analytics off | ||||
| ``` | ||||
| 
 | ||||
| To confirm analytics are disabled, run | ||||
| 
 | ||||
| ```bash | ||||
| brew analytics state | ||||
| ``` | ||||
| 
 | ||||
| It should print `Analytics are disabled.` | ||||
| 
 | ||||
| D) Install Mercurial and Subversion: | ||||
| 
 | ||||
| ```bash | ||||
| brew install mercurial subversion | ||||
| ``` | ||||
| 
 | ||||
| E) Install NodeJS | ||||
| 
 | ||||
| :::note | ||||
| 
 | ||||
| @ -88,20 +127,19 @@ for "LTS" and "Current" releases.  The "LTS" version should be installed. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| Mercurial and Subversion: | ||||
| 
 | ||||
| <Tabs> | ||||
|   </TabItem> | ||||
|   <TabItem value="l" label="Linux"> | ||||
| 
 | ||||
| On Linux, install using the system package manager. Debian and Ubuntu use `apt`: | ||||
| A) Install `mercurial`, `git`, and `subversion` using the system package | ||||
| manager. On Debian and Ubuntu systems, `apt-get` installs packages: | ||||
| 
 | ||||
| ```bash | ||||
| sudo apt-get install mercurial subversion | ||||
| sudo apt-get install git mercurial subversion | ||||
| ``` | ||||
| 
 | ||||
| Other Linux distributions may use other package managers. | ||||
| 
 | ||||
| <details><summary><b>Steam Deck</b> (click to show)</summary> | ||||
| <details open><summary><b>Steam Deck</b> (click to show)</summary> | ||||
| 
 | ||||
| Desktop Mode on the Steam Deck uses `pacman`.  It also requires a few steps. | ||||
| 
 | ||||
| @ -134,40 +172,27 @@ yay -S base-devel mercurial subversion | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="m" label="MacOS"> | ||||
| After installing mercurial and subversion, install NodeJS. | ||||
| 
 | ||||
| On MacOS, install using Homebrew. | ||||
| :::note | ||||
| 
 | ||||
| 0) Open a terminal window and install Homebrew: | ||||
| [The official NodeJS site](https://nodejs.org/en/download/) provides installers | ||||
| for "LTS" and "Current" releases.  The "LTS" version should be installed. | ||||
| 
 | ||||
| ```bash | ||||
| /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | ||||
| ``` | ||||
| 
 | ||||
| 1) Close the window, open a new terminal window, and disable analytics: | ||||
| 
 | ||||
| ```bash | ||||
| brew analytics off | ||||
| ``` | ||||
| 
 | ||||
| To confirm analytics are disabled, run | ||||
| 
 | ||||
| ```bash | ||||
| brew analytics state | ||||
| ``` | ||||
| 
 | ||||
| It should print `Analytics are disabled.` | ||||
| 
 | ||||
| 2) Install Mercurial and Subversion: | ||||
| 
 | ||||
| ```bash | ||||
| brew install mercurial subversion | ||||
| ``` | ||||
| ::: | ||||
| 
 | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| ### Build from source tree | ||||
| 
 | ||||
| 0) Clone the project: | ||||
| 
 | ||||
| ```bash | ||||
| git clone https://git.sheetjs.com/sheetjs/sheetjs | ||||
| cd sheetjs | ||||
| ``` | ||||
| 
 | ||||
| 1) Install NodeJS modules for building the scripts | ||||
| 
 | ||||
| ```bash | ||||
| @ -206,21 +231,82 @@ cd modules; make; cd .. | ||||
| make dist | ||||
| ``` | ||||
| 
 | ||||
| 4) (For Deno testing) Install Deno: | ||||
| ### Reproduce official builds | ||||
| 
 | ||||
| 4) Run `git log` and search for the commit that matches a particular release | ||||
| version.  For example, version `0.19.1` can be found with: | ||||
| 
 | ||||
| ```bash | ||||
| curl -fsSL https://deno.land/install.sh | sh | ||||
| git log | grep -B4 "version bump 0.19.1" | ||||
| ``` | ||||
| 
 | ||||
| 5) (For Bun testing) Install Bun: | ||||
| The output should look like: | ||||
| 
 | ||||
| ```bash | ||||
| curl https://bun.sh/install | bash | ||||
| $ git log | grep -B4 "version bump 0.19.1" | ||||
| # highlight-next-line | ||||
| commit 51a861900092bfc01b2fa9960d4c932dcbeb6925 <-- this is the commit hash | ||||
| Author: SheetJS <dev@sheetjs.com> | ||||
| Date:   Thu Nov 17 04:35:34 2022 -0500 | ||||
| 
 | ||||
|     version bump 0.19.1 | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 5) Switch to that commit: | ||||
| 
 | ||||
| ```bash | ||||
| git checkout 51a861900092bfc01b2fa9960d4c932dcbeb6925 | ||||
| ``` | ||||
| 
 | ||||
| 6) Run the full build sequence | ||||
| 
 | ||||
| ```bash | ||||
| make clean | ||||
| cd modules; make; cd .. | ||||
| make | ||||
| make dist | ||||
| ``` | ||||
| 
 | ||||
| 7) To verify that the files are intact, use `md5sum` (`md5` on MacOS). | ||||
| 
 | ||||
| The local checksum for the browser script can be computed with: | ||||
| 
 | ||||
| ```bash | ||||
| $ md5sum dist/xlsx.full.min.js | ||||
| 00b46a9f2d30ddc69780ab8049d6809e  dist/xlsx.full.min.js | ||||
| ``` | ||||
| 
 | ||||
| The checksum for the CDN version can be computed with: | ||||
| 
 | ||||
| ```bash | ||||
| curl -L https://cdn.sheetjs.com/xlsx-0.19.1/package/dist/xlsx.full.min.js | md5sum - | ||||
| 00b46a9f2d30ddc69780ab8049d6809e  - | ||||
| ``` | ||||
| 
 | ||||
| The two hashes should match. | ||||
| 
 | ||||
| 8) To return to the HEAD commit, run | ||||
| 
 | ||||
| ```bash | ||||
| git checkout HEAD | ||||
| ``` | ||||
| 
 | ||||
| ### Test in web browsers | ||||
| 
 | ||||
| 9) Start local server: | ||||
| 
 | ||||
| ```bash | ||||
| make ctestserv | ||||
| ``` | ||||
| 
 | ||||
| The terminal will display a port number.  For example: | ||||
| 
 | ||||
| ``` | ||||
| Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) | ||||
| ``` | ||||
| 
 | ||||
| 10) Open a browser window and access `http://localhost:8000`, replacing `8000` | ||||
| with the port number from the terminal window. | ||||
| 
 | ||||
| ## Development | ||||
| 
 | ||||
|  | ||||
| @ -183,6 +183,10 @@ const config = { | ||||
|         { from: '/docs/demos/aws', to: '/docs/demos/cloud/aws/' }, | ||||
|         { from: '/docs/demos/azure', to: '/docs/demos/cloud/azure/' }, | ||||
|         { from: '/docs/demos/netsuite', to: '/docs/demos/cloud/netsuite/' }, | ||||
|         /* extensions */ | ||||
|         { from: '/docs/demos/extendscript', to: '/docs/demos/extensions/extendscript/' }, | ||||
|         { from: '/docs/demos/excelapi', to: '/docs/demos/extensions/excelapi/' }, | ||||
|         { from: '/docs/demos/chromium', to: '/docs/demos/extensions/chromium/' }, | ||||
|       ] | ||||
|     }] | ||||
|   ] | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user