forked from sheetjs/docs.sheetjs.com
		
	inputtype
This commit is contained in:
		
							parent
							
								
									a55b6f4b04
								
							
						
					
					
						commit
						9239192893
					
				| @ -92,7 +92,8 @@ The official Deno registry is out of date.  This is a registry bug. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| Applications using the Deno registry can migrate by changing the URLs. | ||||
| Applications using the Deno registry can migrate by changing the URLs.  After | ||||
| migrating, it is easy to update by changing the version number. | ||||
| 
 | ||||
| <Tabs> | ||||
|   <TabItem value="v" label="URL with version"> | ||||
|  | ||||
| @ -5,8 +5,7 @@ title: Google Sheets | ||||
| import Tabs from '@theme/Tabs'; | ||||
| import TabItem from '@theme/TabItem'; | ||||
| 
 | ||||
| This demo uses [`node-google-spreadsheet`](https://theoephraim.github.io/node-google-spreadsheet) | ||||
| to interact with Google Sheets v4 API. | ||||
| This demo uses `node-google-spreadsheet` to interact with Google Sheets v4 API. | ||||
| 
 | ||||
| :::caution | ||||
| 
 | ||||
| @ -57,13 +56,7 @@ not natively support the XLSB format.  SheetJS fills the gap. | ||||
| 
 | ||||
| <details><summary><b>How to run locally</b> (click to show)</summary> | ||||
| 
 | ||||
| 0) Follow the [Authentication and Service Account](https://theoephraim.github.io/node-google-spreadsheet/#/getting-started/authentication) | ||||
| instructions.  At the end, you should have | ||||
| 
 | ||||
| - Created a project and enabled the Sheets API | ||||
| - Created a service account with a JSON key | ||||
| 
 | ||||
| Move the generated JSON key to `key.json` in your project folder. | ||||
| 0) Follow the [Initial Configuration](#initial-configuration). | ||||
| 
 | ||||
| 1) Create a new Google Sheet and share with the generated service account.  It | ||||
| should be granted the "Editor" role | ||||
| @ -195,13 +188,7 @@ The goal is to refresh a Google Sheet based on a local file. | ||||
| 
 | ||||
| <details><summary><b>How to run locally</b> (click to show)</summary> | ||||
| 
 | ||||
| 0) Follow the [Authentication and Service Account](https://theoephraim.github.io/node-google-spreadsheet/#/getting-started/authentication) | ||||
| instructions.  At the end, you should have | ||||
| 
 | ||||
| - Created a project and enabled the Sheets API | ||||
| - Created a service account with a JSON key | ||||
| 
 | ||||
| Move the generated JSON key to `key.json` in your project folder. | ||||
| 0) Follow the [Initial Configuration](#initial-configuration). | ||||
| 
 | ||||
| 1) Create a new Google Sheet and share with the generated service account.  It | ||||
| should be granted the "Editor" role | ||||
|  | ||||
| @ -647,7 +647,7 @@ the standalone browser scripts. | ||||
| 
 | ||||
| 2) Save the following script to `SheetJSQuick.js`: | ||||
| 
 | ||||
| ```js title="SheetJSQuick.js | ||||
| ```js title="SheetJSQuick.js" | ||||
| /* sheetjs (C) 2013-present  SheetJS -- https://sheetjs.com */ | ||||
| /* load XLSX */ | ||||
| import * as std from "std"; | ||||
| @ -664,10 +664,10 @@ rh.read(ab, 0, sz); | ||||
| rh.close(); | ||||
| 
 | ||||
| /* parse file */ | ||||
| var wb = XLSX.read(ab, {type: 'array'}); | ||||
| var wb = XLSX.read(ab); | ||||
| 
 | ||||
| /* write array */ | ||||
| var out = XLSX.write(wb, {type: 'array'}); | ||||
| /* write XLSX */ | ||||
| var out = XLSX.write(wb, {bookType: "xlsx", type: "array"}); | ||||
| 
 | ||||
| /* write contents to file */ | ||||
| var wh = std.open("SheetJSQuick.xlsx", "wb"); | ||||
| @ -861,6 +861,7 @@ The `load` function in `jjs` can load the minified source directly: | ||||
| 
 | ||||
| ```js | ||||
| var global = (function(){ return this; }).call(null); | ||||
| load('shim.min.js'); | ||||
| load('xlsx.full.min.js'); | ||||
| ``` | ||||
| 
 | ||||
| @ -887,6 +888,7 @@ array and calls `XLSX.read` with type `"array"`. | ||||
| 
 | ||||
| /* load module */ | ||||
| var global = (function(){ return this; }).call(null); | ||||
| load('shim.min.js'); | ||||
| load('xlsx.full.min.js'); | ||||
| 
 | ||||
| /* helper to convert byte array to plain JS array */ | ||||
| @ -905,7 +907,7 @@ function process_file(path) { | ||||
|   var u8a = b2a(bytes); | ||||
| 
 | ||||
|   /* read data */ | ||||
|   var wb = XLSX.read(u8a, {type:"array"}); | ||||
|   var wb = XLSX.read(u8a); | ||||
| 
 | ||||
|   /* get first worksheet as an array of arrays */ | ||||
|   var ws = wb.Sheets[wb.SheetNames[0]]; | ||||
|  | ||||
| @ -100,7 +100,7 @@ class ParseResource extends Drash.Resource { | ||||
|     const file = request.bodyParam<Drash.Types.BodyFile>("upload"); | ||||
|     if (!file) throw new Error("File is required!"); | ||||
|     // highlight-next-line | ||||
|     var wb = read(file.content, {type: "buffer"}); | ||||
|     var wb = read(file.content); | ||||
|     return response.html( utils.sheet_to_html(wb.Sheets[wb.SheetNames[0]])); | ||||
|   } | ||||
| } | ||||
| @ -156,7 +156,7 @@ class ParseResource extends Drash.Resource { | ||||
|   public POST(request: Drash.Request, response: Drash.Response) { | ||||
|     const file = request.bodyParam<Drash.Types.BodyFile>("file"); | ||||
|     if (!file) throw new Error("File is required!"); | ||||
|     var wb = read(file.content, {type: "buffer"}); | ||||
|     var wb = read(file.content); | ||||
|     return response.html( utils.sheet_to_html(wb.Sheets[wb.SheetNames[0]])); | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -13,9 +13,9 @@ SheetJS libraries strive to maintain broad browser and JS engine compatibility. | ||||
| 
 | ||||
| ## Integration | ||||
| 
 | ||||
| The ["Standalone Browser Scripts"](/docs/getting-started/installation/standalone) section has | ||||
| instructions for obtaining or referencing the standalone scripts.  These are | ||||
| designed to be referenced with `<script>` tags. | ||||
| ["Standalone Browser Scripts"](/docs/getting-started/installation/standalone) | ||||
| section has instructions for obtaining or referencing the standalone scripts. | ||||
| These are designed to be referenced with `<script>` tags. | ||||
| 
 | ||||
| ## Internet Explorer | ||||
| 
 | ||||
| @ -27,7 +27,7 @@ The SheetJS testing grid still includes IE and should work. | ||||
| ::: | ||||
| 
 | ||||
| The modern upload and download strategies are not available in older versions of | ||||
| IE, but there are approaches using older technologies like ActiveX and Flash. | ||||
| IE, but there are approaches using ActiveX or Flash. | ||||
| 
 | ||||
| <details><summary><b>Complete Example</b> (click to show)</summary> | ||||
| 
 | ||||
| @ -58,7 +58,7 @@ npx -y http-server . | ||||
| 
 | ||||
| <details><summary><b>Other Live Demos</b> (click to show)</summary> | ||||
| 
 | ||||
| :::warning | ||||
| :::caution | ||||
| 
 | ||||
| The hosted solutions may not work in older versions of Windows.  For testing, | ||||
| demo pages should be downloaded and hosted using a simple HTTP server. | ||||
| @ -174,9 +174,8 @@ included in the page and the relevant features are enabled on the target system. | ||||
| 
 | ||||
| ### AngularJS | ||||
| 
 | ||||
| [AngularJS](https://en.wikipedia.org/wiki/AngularJS) was a front-end MVC | ||||
| framework that was abandoned by Google in 2022. It should not be confused with | ||||
| "Angular" the modern framework. | ||||
| AngularJS was a front-end MVC framework that was discontinued by Google in 2022. | ||||
| It should not be confused with the modern framework "Angular". | ||||
| 
 | ||||
| The [Live demo](pathname:///angularjs/index.html) shows a simple table that is | ||||
| updated with file data and exported to spreadsheets. | ||||
| @ -391,8 +390,7 @@ require(["xlsx"], function(_XLSX) { | ||||
| 
 | ||||
| ### KnockoutJS | ||||
| 
 | ||||
| [KnockoutJS](https://en.wikipedia.org/wiki/Knockout_(web_framework)) was a | ||||
| popular MVVM framework. | ||||
| KnockoutJS was a popular MVVM framework. | ||||
| 
 | ||||
| The [Live demo](pathname:///knockout/knockout.html) shows a view model that is | ||||
| updated with file data and exported to spreadsheets. | ||||
|  | ||||
| @ -325,8 +325,8 @@ The [`server` demo](/docs/demos/server) has more advanced examples. | ||||
|   </TabItem> | ||||
|   <TabItem value="deno" label="Deno"> | ||||
| 
 | ||||
| [Drash](https://drash.land/drash/) is a HTTP server framework for Deno.  In a | ||||
| `POST` request handler, the body parser can pull file data into a `Uint8Array`: | ||||
| Drash is a HTTP server framework for Deno.  In a `POST` request handler, the | ||||
| body parser can pull file data into a `Uint8Array`: | ||||
| 
 | ||||
| <pre><code parentName="pre" {...{"className": "language-ts"}}>{`\ | ||||
| // @deno-types="https://cdn.sheetjs.com/xlsx-${current}/package/types/index.d.ts" | ||||
| @ -345,7 +345,7 @@ class SheetResource extends Drash.Resource { | ||||
|     const file = request.bodyParam<Drash.Types.BodyFile>("file"); | ||||
|     if (!file) throw new Error("File is required!"); | ||||
|     // highlight-next-line | ||||
|     var wb = XLSX.read(file.content, {type: "buffer"}); | ||||
|     var wb = XLSX.read(file.content); | ||||
|     var html = XLSX.utils.sheet_to_html(wb.Sheets[wb.SheetNames[0]]); | ||||
|     return response.html(html); | ||||
|   } | ||||
| @ -583,7 +583,7 @@ and process the whole thing at the end: | ||||
| ```js | ||||
| // XLSX is a global from the standalone script | ||||
| 
 | ||||
| async function process_RS(stream) { | ||||
| async function buffer_RS(stream) { | ||||
|   /* collect data */ | ||||
|   const buffers = []; | ||||
|   const reader = stream.getReader(); | ||||
| @ -605,9 +605,9 @@ async function process_RS(stream) { | ||||
|   return out; | ||||
| } | ||||
| 
 | ||||
| const data = await process_RS(stream); | ||||
| const data = await buffer_RS(stream); | ||||
| /* data is Uint8Array */ | ||||
| const workbook = XLSX.read(data, {type: 'array'}); | ||||
| const workbook = XLSX.read(data); | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| @ -617,7 +617,6 @@ When dealing with Readable Streams, the easiest approach is to buffer the stream | ||||
| and process the whole thing at the end: | ||||
| 
 | ||||
| ```js | ||||
| var fs = require("fs"); | ||||
| var XLSX = require("xlsx"); | ||||
| 
 | ||||
| function process_RS(stream, cb) { | ||||
| @ -625,7 +624,7 @@ function process_RS(stream, cb) { | ||||
|   stream.on("data", function(data) { buffers.push(data); }); | ||||
|   stream.on("end", function() { | ||||
|     var buffer = Buffer.concat(buffers); | ||||
|     var workbook = XLSX.read(buffer, {type:"buffer"}); | ||||
|     var workbook = XLSX.read(buffer); | ||||
| 
 | ||||
|     /* DO SOMETHING WITH workbook IN THE CALLBACK */ | ||||
|     cb(workbook); | ||||
|  | ||||
| @ -87,6 +87,14 @@ tells the library how to parse the data argument: | ||||
| | `"array"`  | array: array of 8-bit unsigned int (byte `n` is `data[n]`)      | | ||||
| | `"file"`   | string: path of file that will be read (nodejs only)            | | ||||
| 
 | ||||
| Some common types are automatically deduced from the data input type, including | ||||
| NodeJS `Buffer` objects, `Uint8Array` and `ArrayBuffer` objects, and arrays of | ||||
| numbers. | ||||
| 
 | ||||
| When a JS `string` is passed with no `type`, the library assumes the data is a | ||||
| Base64 string. `FileReader#readAsBinaryString` or ASCII data requires `"binary"` | ||||
| type. DOM strings including `FileReader#readAsText` should use type `"string"`. | ||||
| 
 | ||||
| ### Guessing File Type | ||||
| 
 | ||||
| <details> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user