forked from sheetjs/docs.sheetjs.com
data.gov-new-url
This commit is contained in:
parent
fecf228fed
commit
10ed191020
@ -999,8 +999,7 @@ When the app is loaded, the data will be displayed in rows.
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
[^1]: <https://catalog.data.gov/dataset/national-student-loan-data-system/resource/d5907707-a273-415d-ae6b-e0bbc73eb529>
|
||||
is the original location of the CC0-licensed dataset.
|
||||
[^1]: <https://catalog.data.gov/dataset/national-student-loan-data-system-aa85f> is the current location for the CC0-licensed dataset. `PortfolioSummary.xls` is the file name.
|
||||
[^2]: See [`read` in "Reading Files"](/docs/api/parse-options)
|
||||
[^3]: See ["SheetJS Data Model"](/docs/csf/)
|
||||
[^4]: See ["Workbook Object"](/docs/csf/book)
|
||||
|
@ -66,7 +66,7 @@ sequenceDiagram
|
||||
|
||||
This demo exports data from <https://sheetjs.com/demos/table>.
|
||||
|
||||
:::note
|
||||
:::note pass
|
||||
|
||||
It is also possible to parse files from the browser context, but parsing from
|
||||
the automation context is more efficient and strongly recommended.
|
||||
@ -148,7 +148,7 @@ This file can be opened with Excel.
|
||||
</TabItem>
|
||||
<TabItem value="deno" label="Deno">
|
||||
|
||||
:::caution
|
||||
:::caution pass
|
||||
|
||||
Deno Puppeteer is a fork. It is not officially supported by the Puppeteer team.
|
||||
|
||||
@ -293,7 +293,7 @@ This file can be opened with Excel.
|
||||
|
||||
PhantomJS is a headless web browser powered by WebKit.
|
||||
|
||||
:::warning
|
||||
:::warning pass
|
||||
|
||||
This information is provided for legacy deployments. PhantomJS development has
|
||||
been suspended and there are known vulnerabilities, so new projects should use
|
||||
@ -340,7 +340,7 @@ page.open('https://sheetjs.com/demos/table', function() {
|
||||
});`}
|
||||
</CodeBlock>
|
||||
|
||||
:::caution
|
||||
:::caution pass
|
||||
|
||||
PhantomJS is very finicky and will hang if there are script errors. It is
|
||||
strongly recommended to add verbose logging and to lint scripts before use.
|
||||
@ -351,11 +351,11 @@ strongly recommended to add verbose logging and to lint scripts before use.
|
||||
|
||||
:::note
|
||||
|
||||
This demo was last tested on 2023 April 29 against PhantomJS 2.1.1
|
||||
This demo was last tested on 2023 August 16 against PhantomJS 2.1.1
|
||||
|
||||
:::
|
||||
|
||||
1) Download and unzip the PhantomJS release from the official website.
|
||||
1) Download and unzip the PhantomJS release from the official website[^1].
|
||||
|
||||
2) Save the `SheetJSPhantom.js` code snippet to `SheetJSPhantom.js`.
|
||||
|
||||
@ -370,4 +370,6 @@ In macOS:
|
||||
When the script finishes, the file `SheetJSPhantomJS.xlsb` will be created.
|
||||
This file can be opened with Excel.
|
||||
|
||||
</details>
|
||||
</details>
|
||||
|
||||
[^1]: Downloads available at <https://phantomjs.org/download.html>
|
@ -137,8 +137,8 @@ There are three steps to reading files:
|
||||
3) Parse the data with the SheetJS `read` method[^9]. This method returns a
|
||||
SheetJS workbook object.
|
||||
|
||||
`file.load` expects an `id` property, which can be be the internal ID (displayed
|
||||
in the File Cabinet web interface) or an absolute or relative path string.
|
||||
`file.load` expects an `id` property, which can be the internal ID (displayed in
|
||||
the File Cabinet web interface) or an absolute or relative path string.
|
||||
|
||||
```js
|
||||
/* file ID or path */
|
||||
|
@ -82,6 +82,46 @@ function ExportSimpleLink(props) { return ( <button onClick={() => {
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<details><summary><b>Extract all links from a file</b> (click to show)</summary>
|
||||
|
||||
The following example iterates through each worksheet and each cell to find all
|
||||
links. The table shows sheet name, cell address, and target for each link.
|
||||
|
||||
```jsx live
|
||||
function SheetJSParseLinks(props) {
|
||||
const [rows, setRows] = React.useState([]);
|
||||
|
||||
return ( <>
|
||||
<input type="file" onChange={async(e) => {
|
||||
let rows = [];
|
||||
/* parse workbook */
|
||||
const file = e.target.files[0];
|
||||
const data = await file.arrayBuffer();
|
||||
const wb = XLSX.read(data);
|
||||
|
||||
const html = [];
|
||||
wb.SheetNames.forEach(n => {
|
||||
var ws = wb.Sheets[n]; if(!ws) return;
|
||||
var ref = XLSX.utils.decode_range(ws["!ref"]);
|
||||
for(var R = 0; R <= ref.e.r; ++R) for(var C = 0; C <= ref.e.c; ++C) {
|
||||
var addr = XLSX.utils.encode_cell({r:R,c:C});
|
||||
if(!ws[addr] || !ws[addr].l) continue;
|
||||
var link = ws[addr].l;
|
||||
rows.push({ws:n, addr, Target: link.Target});
|
||||
}
|
||||
});
|
||||
setRows(rows);
|
||||
}}/>
|
||||
<table><tr><th>Sheet</th><th>Address</th><th>Link Target</th></tr>
|
||||
{rows.map(r => (<tr><td>{r.ws}</td><td>{r.addr}</td><td>{r.Target}</td></tr>))}
|
||||
</table>
|
||||
</> );
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Remote Links
|
||||
|
||||
HTTP / HTTPS links can be used directly:
|
||||
@ -199,7 +239,7 @@ function ExportInternalLink(props) { return ( <button onClick={() => {
|
||||
|
||||
</details>
|
||||
|
||||
:::caution
|
||||
:::caution pass
|
||||
|
||||
Some third-party tools like Google Sheets do not correctly parse hyperlinks in
|
||||
XLSX documents. A workaround was added in library version 0.18.12.
|
||||
|
Loading…
Reference in New Issue
Block a user