forked from sheetjs/docs.sheetjs.com
		
	steamdeck
This commit is contained in:
		
							parent
							
								
									6729a25013
								
							
						
					
					
						commit
						a55b6f4b04
					
				| @ -55,9 +55,6 @@ sap.ui.define([ | ||||
| 
 | ||||
| :::warning | ||||
| 
 | ||||
| The [SAP Website has a note about including third-party JS libraries.](https://blogs.sap.com/2017/04/30/how-to-include-third-party-libraries-modules-in-sapui5/) | ||||
| It recommends copying and pasting JavaScript code. | ||||
| 
 | ||||
| **Copy and pasting code does not work** for SheetJS scripts as they contain | ||||
| Unicode characters that may be mangled.  The standalone script should be | ||||
| downloaded and manually uploaded to the project. | ||||
|  | ||||
| @ -152,7 +152,7 @@ given that every related vendor stopped providing support for their software. | ||||
| `XLSX.writeFile` techniques work for most modern browsers as well as older IE. | ||||
| For much older browsers, there are workarounds implemented by wrapper libraries. | ||||
| 
 | ||||
| [`Downloadify`](https://github.com/dcneiner/downloadify) uses a Flash SWF button | ||||
| [`Downloadify`](/docs/demos/legacy#download-strategies) uses a Flash SWF button | ||||
| to generate local files, suitable for environments where ActiveX is unavailable: | ||||
| 
 | ||||
| ```js | ||||
| @ -544,13 +544,15 @@ Node 17.5 and 18.0 have native support for fetch: | ||||
| ```js | ||||
| const XLSX = require("xlsx"); | ||||
| 
 | ||||
| const buf = XLSX.write(workbook, { bookType: "xlsx", type: "buffer" }); | ||||
| var blob = new Blob([buf], {type:"application/octet-stream"}); | ||||
| var formdata = new FormData(); | ||||
| formdata.append("file", blob, "test.xlsx"); | ||||
| async function upload_wb(workbook, url, name="test.xlsx", field="file") { | ||||
|   const buf = XLSX.write(workbook, { bookType: "xlsx", type: "buffer" }); | ||||
|   const blob = new Blob([buf], {type:"application/octet-stream"}); | ||||
|   const body = new FormData(); | ||||
|   body.append(field, blob, name); | ||||
| 
 | ||||
| /* perform POST request */ | ||||
| fetch("https://thisis.a.test/upload", { method: 'POST', body: formdata }); | ||||
|   /* perform POST request */ | ||||
|   return fetch(url, { method: 'POST', body }); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| @ -597,17 +599,15 @@ With the `header: 1` option, the function exports an array of arrays of values. | ||||
| <Tabs> | ||||
|   <TabItem value="js" label="Vanilla JS"> | ||||
| 
 | ||||
| [`x-spreadsheet`](https://github.com/myliang/x-spreadsheet) is an interactive | ||||
| data grid for previewing and modifying structured data in the web browser.  The | ||||
| [demo](/docs/demos/grid#x-spreadsheet) includes a sample script and live demo. | ||||
| [`x-spreadsheet`](/docs/demos/grid#x-spreadsheet) is an interactive data grid | ||||
| for previewing and modifying structured data in the web browser. | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="react" label="React"> | ||||
| 
 | ||||
| [`react-data-grid`](https://adazzle.github.io/react-data-grid) is a data grid | ||||
| built for React.  It uses two properties: `rows` of data objects and `columns` | ||||
| which describe the columns.  For the purposes of massaging the data to fit the | ||||
| `react-data-grid` API it is easiest to start from an array of arrays. | ||||
| [`react-data-grid`](/docs/demos/grid#react-data-grid) is a data grid built for | ||||
| React. It uses two properties: `rows` of data objects and `columns` which | ||||
| describe the columns.  The grid API can play nice with an array of arrays. | ||||
| 
 | ||||
| This demo starts by fetching a remote file and using `XLSX.read` to extract: | ||||
| 
 | ||||
| @ -642,8 +642,7 @@ export default function App() { | ||||
|   </TabItem> | ||||
|   <TabItem value="vue" label="VueJS"> | ||||
| 
 | ||||
| [`vue3-table-lite`](https://vue3-lite-table.vercel.app/) is a simple VueJS 3 | ||||
| data table.  It is featured in the [dedicated demo](/docs/demos/grid#vue3-table-lite). | ||||
| [`vue3-table-lite`](/docs/demos/grid#vue3-table-lite) is a VueJS 3 data table. | ||||
| 
 | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
|  | ||||
| @ -81,19 +81,92 @@ Initial setup: | ||||
| 0) Ensure mercurial, subversion, and NodeJS are installed. The WSL instructions | ||||
| will have installed these dependencies, so WSL users can skip to step 1. | ||||
| 
 | ||||
| On Linux: | ||||
| :::note | ||||
| 
 | ||||
| [The official NodeJS site](https://nodejs.org/en/download/) provides installers | ||||
| for "LTS" and "Current" releases.  The "LTS" version should be installed. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| Mercurial and Subversion: | ||||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="l" label="Linux"> | ||||
| 
 | ||||
| On Linux, install using the system package manager. Debian and Ubuntu use `apt`: | ||||
| 
 | ||||
| ```bash | ||||
| sudo apt-get install mercurial subversion | ||||
| ``` | ||||
| 
 | ||||
| On MacOS, install using Homebrew: | ||||
| Other Linux distributions may use other package managers. | ||||
| 
 | ||||
| <details><summary><b>Steam Deck</b> (click to show)</summary> | ||||
| 
 | ||||
| Desktop Mode on the Steam Deck uses `pacman`.  It also requires a few steps. | ||||
| 
 | ||||
| 0) Switch to Desktop mode and open `Konsole` | ||||
| 
 | ||||
| 1) Set a password for the user by running `passwd` and following instructions. | ||||
| 
 | ||||
| 2) Disable read-only mode: | ||||
| 
 | ||||
| ```bash | ||||
| sudo steamos-readonly disable | ||||
| ``` | ||||
| 
 | ||||
| (When prompted, enter the password assigned in step 1) | ||||
| 
 | ||||
| 3) Configure keyring: | ||||
| 
 | ||||
| ```bash | ||||
| echo "keyserver hkps://keyserver.ubuntu.com" >> /etc/pacman.d/gnupg/gpg.conf | ||||
| sudo pacman-key --init | ||||
| sudo pacman-key --populate | ||||
| sudo pacman-key --refresh-keys | ||||
| ``` | ||||
| 
 | ||||
| 4) Install dependencies: | ||||
| 
 | ||||
| ```bash | ||||
| yay -S base-devel mercurial subversion | ||||
| ``` | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="m" label="MacOS"> | ||||
| 
 | ||||
| On MacOS, install using Homebrew. | ||||
| 
 | ||||
| 0) Open a terminal window and install Homebrew: | ||||
| 
 | ||||
| ```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 | ||||
| ``` | ||||
| 
 | ||||
| NodeJS installers can be found at the project homepage. | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| 1) Install NodeJS modules for building the scripts | ||||
| 
 | ||||
| @ -105,6 +178,15 @@ npm install | ||||
| sudo npm i -g mocha@2.5.3 voc @sheetjs/uglify-js | ||||
| ``` | ||||
| 
 | ||||
| :::note Older Versions of Dependencies | ||||
| 
 | ||||
| Some of the dependencies are wildly out of date.  While SheetJS aims to run in | ||||
| older versions of NodeJS and browsers, some libraries have chosen to break | ||||
| backwards compatibility.  The specific versions are used because they are known | ||||
| to work and known to produce consistent results. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 2) Initialize the test files: | ||||
| 
 | ||||
| ```bash | ||||
| @ -149,14 +231,6 @@ to produce the scripts. | ||||
| To produce the dist files, run `make dist`.  The dist files are updated in each | ||||
| version release and *should not be committed between versions*. | ||||
| 
 | ||||
| **A note on Older Versions** | ||||
| 
 | ||||
| Some of the dependencies are wildly out of date.  While SheetJS aims to run in | ||||
| older versions of NodeJS and browsers, some libraries have chosen to break | ||||
| backwards compatibility.  The specific versions are used because they are known | ||||
| to work and known to produce consistent results. | ||||
| 
 | ||||
| 
 | ||||
| ## Tests | ||||
| 
 | ||||
| The `test_misc` target runs the targeted feature tests.  It should take 5-10 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user