fix demo links

This commit is contained in:
SheetJS 2021-09-12 05:16:01 -04:00
parent 4388f69c00
commit 098ebf5378
2 changed files with 60 additions and 57 deletions

@ -2,7 +2,7 @@
index:
rm -rf js-xlsx
git clone --depth=1 https://github.com/SheetJS/js-xlsx
cd js-xlsx; grip --title "SheetJS Community Edition" --export README.md; cd ..
cd js-xlsx; sed -i .bak 's/](d/](https:\/\/github.com\/SheetJS\/SheetJS\/tree\/master\/d/g' README.md; grip --title "SheetJS Community Edition" --export README.md; cd ..
mv js-xlsx/README.html index.html
mv js-xlsx/*.png .
git add index.html *.png

@ -73,7 +73,7 @@
<article class="markdown-body entry-content" itemprop="text" id="grip-content">
<h1>
<a id="user-content-sheetjs" class="anchor" href="#sheetjs" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a><a href="http://sheetjs.com" rel="nofollow">SheetJS</a>
<a id="user-content-sheetjs" class="anchor" href="#sheetjs" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a><a href="https://sheetjs.com" rel="nofollow">SheetJS</a>
</h1>
<p>Parser and writer for various spreadsheet formats. Pure-JS cleanroom
implementation from official specifications, related documents, and test files.
@ -81,11 +81,15 @@ Emphasis on parsing and writing robustness, cross-format feature compatibility
with a unified JS representation, and ES3/ES5 browser compatibility back to IE6.</p>
<p>This is the community version. We also offer a pro version with performance
enhancements, additional features like styling, and dedicated support.</p>
<p><a href="http://sheetjs.com/pro" rel="nofollow"><strong>Pro Version</strong></a></p>
<p><a href="http://sheetjs.com/support" rel="nofollow"><strong>Commercial Support</strong></a></p>
<p><a href="http://docs.sheetjs.com/" rel="nofollow"><strong>Rendered Documentation</strong></a></p>
<p><a href="http://sheetjs.com/demos" rel="nofollow"><strong>In-Browser Demos</strong></a></p>
<p><a href="http://git.io/xlsx" rel="nofollow"><strong>Source Code</strong></a></p>
<p>Community Translations of this README:</p>
<ul>
<li><a href="https://github.com/rockboom/SheetJS-docs-zh-CN">Simplified Chinese</a></li>
</ul>
<p><a href="https://sheetjs.com/pro" rel="nofollow"><strong>Pro Version</strong></a></p>
<p><a href="https://sheetjs.com/support" rel="nofollow"><strong>Commercial Support</strong></a></p>
<p><a href="https://docs.sheetjs.com/" rel="nofollow"><strong>Rendered Documentation</strong></a></p>
<p><a href="https://sheetjs.com/demos" rel="nofollow"><strong>In-Browser Demos</strong></a></p>
<p><a href="https://git.io/xlsx" rel="nofollow"><strong>Source Code</strong></a></p>
<p><a href="https://github.com/sheetjs/sheetjs/issues"><strong>Issues and Bug Reports</strong></a></p>
<p><a href="#file-formats"><strong>File format support for known spreadsheet data formats:</strong></a></p>
<details>
@ -93,10 +97,10 @@ enhancements, additional features like styling, and dedicated support.</p>
<p><a href="formats.png" target="_blank" rel="noopener noreferrer"><img src="formats.png" alt="circo graph of format support" style="max-width:100%;"></a></p>
<p><a href="legend.png" target="_blank" rel="noopener noreferrer"><img src="legend.png" alt="graph legend" style="max-width:100%;"></a></p>
</details>
<p><a href="http://oss.sheetjs.com/sheetjs/tests/" rel="nofollow"><strong>Browser Test</strong></a></p>
<p><a href="https://oss.sheetjs.com/sheetjs/tests/" rel="nofollow"><strong>Browser Test</strong></a></p>
<p><a href="https://saucelabs.com/u/sheetjs" rel="nofollow"><img src="https://camo.githubusercontent.com/fd3943851066063e253cd05bc1a8b9436b80f841af7d193c3eacb560012acea6/68747470733a2f2f73617563656c6162732e636f6d2f62726f777365722d6d61747269782f73686565746a732e737667" alt="Build Status" data-canonical-src="https://saucelabs.com/browser-matrix/sheetjs.svg" style="max-width:100%;"></a></p>
<p><a href="https://semaphoreci.com/sheetjs/sheetjs" rel="nofollow"><img src="https://camo.githubusercontent.com/fdf58475670abd49ba7dfd07743cc1115128591b1126c4c792feb332ba089d7e/68747470733a2f2f73656d6170686f726563692e636f6d2f6170692f76312f73686565746a732f73686565746a732f6272616e636865732f6d61737465722f736869656c64735f62616467652e737667" alt="Build Status" data-canonical-src="https://semaphoreci.com/api/v1/sheetjs/sheetjs/branches/master/shields_badge.svg" style="max-width:100%;"></a>
<a href="https://coveralls.io/r/SheetJS/sheetjs?branch=master" rel="nofollow"><img src="https://camo.githubusercontent.com/a325eeccdc989a4c7b1d7abc6883644e385633ed3519441150e9b36ea9263d1b/687474703a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f53686565744a532f73686565746a732f6d61737465722e737667" alt="Coverage Status" data-canonical-src="http://img.shields.io/coveralls/SheetJS/sheetjs/master.svg" style="max-width:100%;"></a>
<a href="https://coveralls.io/r/SheetJS/sheetjs?branch=master" rel="nofollow"><img src="https://camo.githubusercontent.com/c510a0022ed4379cc28dd9abc05bac53feef69d66fbd1883e40c7505649916b3/68747470733a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f53686565744a532f73686565746a732f6d61737465722e737667" alt="Coverage Status" data-canonical-src="https://img.shields.io/coveralls/SheetJS/sheetjs/master.svg" style="max-width:100%;"></a>
<a href="https://david-dm.org/sheetjs/sheetjs" rel="nofollow"><img src="https://camo.githubusercontent.com/4e021c513c3dfd1b88c144e855b6e3815d2bc9c93021e39e3fba1aa2d4a11e67/68747470733a2f2f64617669642d646d2e6f72672f73686565746a732f73686565746a732f7374617475732e737667" alt="Dependencies Status" data-canonical-src="https://david-dm.org/sheetjs/sheetjs/status.svg" style="max-width:100%;"></a>
<a href="https://npmjs.org/package/xlsx" rel="nofollow"><img src="https://camo.githubusercontent.com/afba95100349a4110c4408973a3c9c3557762e14fdc9088e7ea6dd3746d2139b/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f786c73782e737667" alt="npm Downloads" data-canonical-src="https://img.shields.io/npm/dt/xlsx.svg" style="max-width:100%;"></a>
<a href="https://github.com/SheetJS/sheetjs"><img src="https://camo.githubusercontent.com/5835ef9524626d64db0c7a60890d3723b178fb5ca8783250f405dd15dfc3b000/68747470733a2f2f67612d626561636f6e2e61707073706f742e636f6d2f55412d33363831303333332d312f53686565744a532f73686565746a733f706978656c" alt="Analytics" data-canonical-src="https://ga-beacon.appspot.com/UA-36810333-1/SheetJS/sheetjs?pixel" style="max-width:100%;"></a></p>
@ -301,7 +305,7 @@ enhancements, additional features like styling, and dedicated support.</p>
</tr>
<tr>
<td align="right"><code>CDNjs</code></td>
<td align="left"><a href="http://cdnjs.com/libraries/xlsx" rel="nofollow">http://cdnjs.com/libraries/xlsx</a></td>
<td align="left"><a href="https://cdnjs.com/libraries/xlsx" rel="nofollow">https://cdnjs.com/libraries/xlsx</a></td>
</tr>
<tr>
<td align="right"><code>packd</code></td>
@ -314,49 +318,49 @@ enhancements, additional features like styling, and dedicated support.</p>
</details>
<p>With <a href="https://www.npmjs.org/package/xlsx" rel="nofollow">npm</a>:</p>
<div class="highlight highlight-source-shell"><pre>$ npm install xlsx</pre></div>
<p>With <a href="http://bower.io/search/?q=js-xlsx" rel="nofollow">bower</a>:</p>
<p>With <a href="https://bower.io/search/?q=js-xlsx" rel="nofollow">bower</a>:</p>
<div class="highlight highlight-source-shell"><pre>$ bower install js-xlsx</pre></div>
<h3>
<a id="user-content-js-ecosystem-demos" class="anchor" href="#js-ecosystem-demos" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>JS Ecosystem Demos</h3>
<p>The <a href="demos/"><code>demos</code> directory</a> includes sample projects for:</p>
<p>The <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/"><code>demos</code> directory</a> includes sample projects for:</p>
<p><strong>Frameworks and APIs</strong></p>
<ul>
<li><a href="demos/angular/"><code>angularjs</code></a></li>
<li><a href="demos/angular2/"><code>angular 2 / 4 / 5 / 6 and ionic</code></a></li>
<li><a href="demos/knockout/"><code>knockout</code></a></li>
<li><a href="demos/meteor/"><code>meteor</code></a></li>
<li><a href="demos/react/"><code>react and react-native</code></a></li>
<li><a href="demos/vue/"><code>vue 2.x and weex</code></a></li>
<li><a href="demos/xhr/"><code>XMLHttpRequest and fetch</code></a></li>
<li><a href="demos/server/"><code>nodejs server</code></a></li>
<li><a href="demos/database/"><code>databases and key/value stores</code></a></li>
<li><a href="demos/array/"><code>typed arrays and math</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/angular/"><code>angularjs</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/angular2/"><code>angular 2 / 4 / 5 / 6 and ionic</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/knockout/"><code>knockout</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/meteor/"><code>meteor</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/react/"><code>react and react-native</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/vue/"><code>vue 2.x and weex</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/xhr/"><code>XMLHttpRequest and fetch</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/server/"><code>nodejs server</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/database/"><code>databases and key/value stores</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/array/"><code>typed arrays and math</code></a></li>
</ul>
<p><strong>Bundlers and Tooling</strong></p>
<ul>
<li><a href="demos/browserify/"><code>browserify</code></a></li>
<li><a href="demos/fusebox/"><code>fusebox</code></a></li>
<li><a href="demos/parcel/"><code>parcel</code></a></li>
<li><a href="demos/requirejs/"><code>requirejs</code></a></li>
<li><a href="demos/rollup/"><code>rollup</code></a></li>
<li><a href="demos/systemjs/"><code>systemjs</code></a></li>
<li><a href="demos/typescript/"><code>typescript</code></a></li>
<li><a href="demos/webpack/"><code>webpack 2.x</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/browserify/"><code>browserify</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/fusebox/"><code>fusebox</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/parcel/"><code>parcel</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/requirejs/"><code>requirejs</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/rollup/"><code>rollup</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/systemjs/"><code>systemjs</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/typescript/"><code>typescript</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/webpack/"><code>webpack 2.x</code></a></li>
</ul>
<p><strong>Platforms and Integrations</strong></p>
<ul>
<li><a href="demos/electron/"><code>electron application</code></a></li>
<li><a href="demos/nwjs/"><code>nw.js application</code></a></li>
<li><a href="demos/chrome/"><code>Chrome / Chromium extensions</code></a></li>
<li><a href="demos/extendscript/"><code>Adobe ExtendScript</code></a></li>
<li><a href="demos/headless/"><code>Headless Browsers</code></a></li>
<li><a href="demos/datagrid/"><code>canvas-datagrid</code></a></li>
<li><a href="demos/xspreadsheet/"><code>x-spreadsheet</code></a></li>
<li><a href="demos/altjs/"><code>Swift JSC and other engines</code></a></li>
<li><a href="demos/function/"><code>"serverless" functions</code></a></li>
<li><a href="demos/oldie/"><code>internet explorer</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/electron/"><code>electron application</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/nwjs/"><code>nw.js application</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/chrome/"><code>Chrome / Chromium extensions</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/extendscript/"><code>Adobe ExtendScript</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/headless/"><code>Headless Browsers</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/datagrid/"><code>canvas-datagrid</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/xspreadsheet/"><code>x-spreadsheet</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/altjs/"><code>Swift JSC and other engines</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/function/"><code>"serverless" functions</code></a></li>
<li><a href="https://github.com/SheetJS/SheetJS/tree/master/demos/oldie/"><code>internet explorer</code></a></li>
</ul>
<p>Other examples are included in the <a href="demos/showcase/">showcase</a>.</p>
<p>Other examples are included in the <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/showcase/">showcase</a>.</p>
<h3>
<a id="user-content-optional-modules" class="anchor" href="#optional-modules" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Optional Modules</h3>
<details>
@ -380,7 +384,7 @@ be configured to remove support with <code>resolve.alias</code>:</p>
<h3>
<a id="user-content-ecmascript-5-compatibility" class="anchor" href="#ecmascript-5-compatibility" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>ECMAScript 5 Compatibility</h3>
<p>Since the library uses functions like <code>Array#forEach</code>, older browsers require
<a href="http://oss.sheetjs.com/sheetjs/shim.js" rel="nofollow">shims to provide missing functions</a>.</p>
<a href="https://oss.sheetjs.com/sheetjs/shim.js" rel="nofollow">shims to provide missing functions</a>.</p>
<p>To use the shim, add the shim before the script tag that loads <code>xlsx.js</code>:</p>
<div class="highlight highlight-text-html-basic"><pre><span class="pl-c">&lt;!-- add the shim first --&gt;</span>
<span class="pl-kos">&lt;</span><span class="pl-ent">script</span> <span class="pl-c1">type</span>="<span class="pl-s">text/javascript</span>" <span class="pl-c1">src</span>="<span class="pl-s">shim.min.js</span>"<span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">script</span><span class="pl-kos">&gt;</span>
@ -440,7 +444,7 @@ The specified path should be an absolute path:</p>
<span class="pl-c">/* Read test.xlsx from the Documents folder */</span>
<span class="pl-k">var</span> <span class="pl-s1">workbook</span> <span class="pl-c1">=</span> <span class="pl-c1">XLSX</span><span class="pl-kos">.</span><span class="pl-en">readFile</span><span class="pl-kos">(</span><span class="pl-v">Folder</span><span class="pl-kos">.</span><span class="pl-c1">myDocuments</span> <span class="pl-c1">+</span> <span class="pl-s">'/'</span> <span class="pl-c1">+</span> <span class="pl-s">'test.xlsx'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-c">/* DO SOMETHING WITH workbook HERE */</span></pre></div>
<p>The <a href="demos/extendscript/"><code>extendscript</code> demo</a> includes a more complex example.</p>
<p>The <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/extendscript/"><code>extendscript</code> demo</a> includes a more complex example.</p>
</details>
<details>
<summary><b>Browser read TABLE element from page</b> (click to show)</summary>
@ -468,7 +472,7 @@ element and iterate through the child nodes.</p>
<details>
<summary><b>Browser download file (ajax)</b> (click to show)</summary>
<p>Note: for a more complete example that works in older browsers, check the demo
at <a href="http://oss.sheetjs.com/sheetjs/ajax.html" rel="nofollow">http://oss.sheetjs.com/sheetjs/ajax.html</a>. The <a href="demos/xhr/"><code>xhr</code> demo</a>
at <a href="http://oss.sheetjs.com/sheetjs/ajax.html" rel="nofollow">http://oss.sheetjs.com/sheetjs/ajax.html</a>. The <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/xhr/"><code>xhr</code> demo</a>
includes more examples with <code>XMLHttpRequest</code> and <code>fetch</code>.</p>
<div class="highlight highlight-source-js"><pre><span class="pl-k">var</span> <span class="pl-s1">url</span> <span class="pl-c1">=</span> <span class="pl-s">"http://oss.sheetjs.com/test_files/formula_stress_test.xlsx"</span><span class="pl-kos">;</span>
@ -519,15 +523,15 @@ as in the drag-and-drop example:</p>
<span class="pl-s1">reader</span><span class="pl-kos">.</span><span class="pl-en">readAsArrayBuffer</span><span class="pl-kos">(</span><span class="pl-s1">f</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
<span class="pl-s1">input_dom_element</span><span class="pl-kos">.</span><span class="pl-en">addEventListener</span><span class="pl-kos">(</span><span class="pl-s">'change'</span><span class="pl-kos">,</span> <span class="pl-s1">handleFile</span><span class="pl-kos">,</span> <span class="pl-c1">false</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p>The <a href="demos/oldie/"><code>oldie</code> demo</a> shows an IE-compatible fallback scenario.</p>
<p>The <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/oldie/"><code>oldie</code> demo</a> shows an IE-compatible fallback scenario.</p>
</details>
<p>More specialized cases, including mobile app file processing, are covered in the
<a href="demos/">included demos</a></p>
<a href="https://github.com/SheetJS/SheetJS/tree/master/demos/">included demos</a></p>
<h3>
<a id="user-content-parsing-examples" class="anchor" href="#parsing-examples" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Parsing Examples</h3>
<ul>
<li>
<a href="http://oss.sheetjs.com/sheetjs/" rel="nofollow">http://oss.sheetjs.com/sheetjs/</a> HTML5 File API / Base64 Text / Web Workers</li>
<a href="https://oss.sheetjs.com/sheetjs/" rel="nofollow">https://oss.sheetjs.com/sheetjs/</a> HTML5 File API / Base64 Text / Web Workers</li>
</ul>
<p>Note that older versions of IE do not support HTML5 File API, so the Base64 mode
is used for testing.</p>
@ -642,7 +646,7 @@ error if the workbook is empty.</p>
<a id="user-content-parsing-and-writing-examples" class="anchor" href="#parsing-and-writing-examples" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Parsing and Writing Examples</h3>
<ul>
<li>
<p><a href="http://sheetjs.com/demos/modify.html" rel="nofollow">http://sheetjs.com/demos/modify.html</a> read + modify + write files</p>
<p><a href="https://sheetjs.com/demos/modify.html" rel="nofollow">https://sheetjs.com/demos/modify.html</a> read + modify + write files</p>
</li>
<li>
<p><a href="https://github.com/SheetJS/sheetjs/blob/HEAD/bin/xlsx.njs">https://github.com/SheetJS/sheetjs/blob/HEAD/bin/xlsx.njs</a> node</p>
@ -686,7 +690,7 @@ The specified path should be an absolute path:</p>
<span class="pl-c">/* output format determined by filename */</span>
<span class="pl-c1">XLSX</span><span class="pl-kos">.</span><span class="pl-en">writeFile</span><span class="pl-kos">(</span><span class="pl-s1">workbook</span><span class="pl-kos">,</span> <span class="pl-s">'out.xlsx'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-c">/* at this point, out.xlsx is a file that you can distribute */</span></pre></div>
<p>The <a href="demos/extendscript/"><code>extendscript</code> demo</a> includes a more complex example.</p>
<p>The <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/extendscript/"><code>extendscript</code> demo</a> includes a more complex example.</p>
</details>
<details>
<summary><b>Browser add TABLE element to page</b> (click to show)</summary>
@ -698,7 +702,7 @@ any DOM element.</p>
</details>
<details>
<summary><b>Browser upload file (ajax)</b> (click to show)</summary>
<p>A complete example using XHR is <a href="demos/xhr/">included in the XHR demo</a>, along
<p>A complete example using XHR is <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/xhr/">included in the XHR demo</a>, along
with examples for fetch and wrapper libraries. This example assumes the server
can handle Base64-encoded files (see the demo for a basic nodejs server):</p>
<div class="highlight highlight-source-js"><pre><span class="pl-c">/* in this example, send a base64 string to the server */</span>
@ -753,9 +757,9 @@ to generate local files, suitable for environments where ActiveX is unavailable:
<span class="pl-c1">append</span>: <span class="pl-c1">false</span><span class="pl-kos">,</span>
<span class="pl-c1">dataType</span>: <span class="pl-s">'base64'</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p>The <a href="demos/oldie/"><code>oldie</code> demo</a> shows an IE-compatible fallback scenario.</p>
<p>The <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/oldie/"><code>oldie</code> demo</a> shows an IE-compatible fallback scenario.</p>
</details>
<p>The <a href="demos/">included demos</a> cover mobile apps and other special deployments.</p>
<p>The <a href="https://github.com/SheetJS/SheetJS/tree/master/demos/">included demos</a> cover mobile apps and other special deployments.</p>
<h3>
<a id="user-content-writing-examples" class="anchor" href="#writing-examples" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Writing Examples</h3>
<ul>
@ -799,7 +803,7 @@ Stream. They are only exposed in NodeJS.</p>
<a id="user-content-interface" class="anchor" href="#interface" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Interface</h2>
<p><code>XLSX</code> is the exposed variable in the browser and the exported node variable</p>
<p><code>XLSX.version</code> is the version of the library (added by the build script).</p>
<p><code>XLSX.SSF</code> is an embedded version of the <a href="http://git.io/ssf" rel="nofollow">format library</a>.</p>
<p><code>XLSX.SSF</code> is an embedded version of the <a href="https://git.io/ssf" rel="nofollow">format library</a>.</p>
<h3>
<a id="user-content-parsing-functions" class="anchor" href="#parsing-functions" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Parsing functions</h3>
<p><code>XLSX.read(data, read_opts)</code> attempts to parse <code>data</code>.</p>
@ -1063,8 +1067,7 @@ local time zone. Excel limitations prevent specifying true absolute dates.</p>
</details>
<details>
<summary><b>Epochs: 1900 and 1904</b> (click to show)</summary>
<p>Excel supports two epochs (January 1 1900 and January 1 1904), see
<a href="http://support2.microsoft.com/kb/180162" rel="nofollow">"1900 vs. 1904 Date System" article</a>.
<p>Excel supports two epochs (January 1 1900 and January 1 1904).
The workbook's epoch can be determined by examining the workbook's
<code>wb.Workbook.WBProps.date1904</code> property:</p>
<div class="highlight highlight-source-js"><pre><span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">wb</span><span class="pl-kos">.</span><span class="pl-c1">Workbook</span><span class="pl-c1">||</span><span class="pl-kos">{</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">WBProps</span><span class="pl-c1">||</span><span class="pl-kos">{</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">date1904</span><span class="pl-kos">)</span></pre></div>
@ -1827,8 +1830,8 @@ hyperlink object is the target of the link, including the URI fragment. Tooltips
are stored in the <code>Tooltip</code> field and are displayed when you move your mouse
over the text.</p>
<p>For example, the following snippet creates a link from cell <code>A3</code> to
<a href="http://sheetjs.com" rel="nofollow">http://sheetjs.com</a> with the tip <code>"Find us @ SheetJS.com!"</code>:</p>
<div class="highlight highlight-source-js"><pre><span class="pl-s1">ws</span><span class="pl-kos">[</span><span class="pl-s">'A3'</span><span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-c1">l</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span> <span class="pl-c1">Target</span>:<span class="pl-s">"http://sheetjs.com"</span><span class="pl-kos">,</span> <span class="pl-c1">Tooltip</span>:<span class="pl-s">"Find us @ SheetJS.com!"</span> <span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<a href="https://sheetjs.com" rel="nofollow">https://sheetjs.com</a> with the tip <code>"Find us @ SheetJS.com!"</code>:</p>
<div class="highlight highlight-source-js"><pre><span class="pl-s1">ws</span><span class="pl-kos">[</span><span class="pl-s">'A3'</span><span class="pl-kos">]</span><span class="pl-kos">.</span><span class="pl-c1">l</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span> <span class="pl-c1">Target</span>:<span class="pl-s">"https://sheetjs.com"</span><span class="pl-kos">,</span> <span class="pl-c1">Tooltip</span>:<span class="pl-s">"Find us @ SheetJS.com!"</span> <span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div>
<p>Note that Excel does not automatically style hyperlinks -- they will generally
be displayed as normal text.</p>
<p>Links where the target is a cell or range or defined name in the same workbook