2022-05-16 03:26:04 +00:00
|
|
|
---
|
|
|
|
sidebar_position: 9
|
2022-12-01 01:13:00 +00:00
|
|
|
title: Utility Functions
|
2023-05-15 08:38:23 +00:00
|
|
|
pagination_prev: api/write-options
|
2022-05-16 03:26:04 +00:00
|
|
|
---
|
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
The utility functions in this section fall into two categories:
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Data Packaging**
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
The "Input" functions create SheetJS data structures (worksheets or workbooks)
|
|
|
|
from rows of data or other common JS data representations
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
These functions are paired with `write` or `writeFile` to create exports. For
|
|
|
|
example, the following diagram shows the steps to export an HTML TABLE to XLSX:
|
2022-07-07 04:05:14 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
```mermaid
|
|
|
|
flowchart LR
|
|
|
|
html{{HTML\nTABLE}}
|
|
|
|
ws(SheetJS\nWorksheet)
|
|
|
|
wb(SheetJS\nWorkbook)
|
|
|
|
file[(workbook\nfile)]
|
|
|
|
html --> |table_to_sheet\n\n| ws
|
|
|
|
ws --> |book_new\nbook_append_sheet| wb
|
|
|
|
wb --> |writeFile\n\n| file
|
|
|
|
```
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Data Extraction**
|
2022-07-07 04:05:14 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
The "Output" functions extract data from worksheets to friendlier structures.
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
These functions are paired with `read` or `readFile` to process data from files.
|
|
|
|
The following diagram shows the steps to generate an HTML TABLE from a URL:
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
```mermaid
|
|
|
|
flowchart LR
|
|
|
|
url[(Remote\nFile)]
|
|
|
|
ab[(Data\nArrayBuffer)]
|
|
|
|
wb(SheetJS\nWorkbook)
|
|
|
|
ws(SheetJS\nWorksheet)
|
|
|
|
html{{HTML\nTABLE}}
|
|
|
|
url --> |fetch\n\n| ab
|
|
|
|
ab --> |read\n\n| wb
|
|
|
|
wb --> |wb.Sheets\nselect sheet| ws
|
|
|
|
ws --> |sheet_to_html\nfirst worksheet| html
|
2022-07-07 04:05:14 +00:00
|
|
|
```
|
|
|
|
|
2022-09-22 00:20:14 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
## Array Output
|
|
|
|
|
|
|
|
**Generate rows of data from a worksheet**
|
|
|
|
|
|
|
|
```js
|
|
|
|
var arr = XLSX.utils.sheet_to_json(ws, opts);
|
|
|
|
```
|
2022-09-22 00:20:14 +00:00
|
|
|
|
2023-06-25 09:36:58 +00:00
|
|
|
[**This function is described in a dedicated page**](/docs/api/utilities/array#array-of-objects-input)
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
## Array of Arrays Input
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Create a worksheet from an array of arrays**
|
2022-05-16 03:26:04 +00:00
|
|
|
|
|
|
|
```js
|
2023-06-13 17:49:52 +00:00
|
|
|
var ws = XLSX.utils.aoa_to_sheet(aoa, opts);
|
2022-05-16 03:26:04 +00:00
|
|
|
```
|
2022-07-07 04:05:14 +00:00
|
|
|
|
|
|
|
**Add data from an array of arrays to an existing worksheet**
|
|
|
|
|
|
|
|
```js
|
|
|
|
XLSX.utils.sheet_add_aoa(ws, aoa, opts);
|
|
|
|
```
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
[**These functions are described in a dedicated page**](/docs/api/utilities/array#array-of-arrays-input)
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2022-10-06 00:05:06 +00:00
|
|
|
## Array of Objects Input
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2022-07-07 04:05:14 +00:00
|
|
|
**Create a worksheet from an array of objects**
|
|
|
|
|
|
|
|
```js
|
|
|
|
var ws = XLSX.utils.json_to_sheet(aoo, opts);
|
|
|
|
```
|
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Add data from an array of objects to an existing worksheet**
|
2022-07-07 04:05:14 +00:00
|
|
|
|
|
|
|
```js
|
2023-06-13 17:49:52 +00:00
|
|
|
XLSX.utils.sheet_add_json(ws, aoo, opts);
|
2022-07-07 04:05:14 +00:00
|
|
|
```
|
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
[**These functions are described in a dedicated page**](/docs/api/utilities/array#array-of-objects-input)
|
2022-07-07 04:05:14 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
## HTML Table Input
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Create a worksheet or workbook from a TABLE element**
|
2022-05-16 03:26:04 +00:00
|
|
|
|
|
|
|
```js
|
2023-06-13 17:49:52 +00:00
|
|
|
var ws = XLSX.utils.table_to_sheet(elt, opts);
|
|
|
|
var wb = XLSX.utils.table_to_book(elt, opts);
|
2022-05-16 03:26:04 +00:00
|
|
|
```
|
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Add data from a TABLE element to an existing worksheet**
|
2022-07-07 04:05:14 +00:00
|
|
|
|
|
|
|
```js
|
2023-06-13 17:49:52 +00:00
|
|
|
XLSX.utils.sheet_add_dom(ws, elt, opts);
|
2022-07-07 04:05:14 +00:00
|
|
|
```
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
[**These functions are described in a dedicated page**](/docs/api/utilities/html#html-table-input)
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
## HTML Output
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Display worksheet data in a HTML table**
|
2022-05-16 03:26:04 +00:00
|
|
|
|
|
|
|
```js
|
2023-06-13 17:49:52 +00:00
|
|
|
var html = XLSX.utils.sheet_to_html(ws, opts);
|
2022-07-07 04:05:14 +00:00
|
|
|
```
|
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
[**This function are described in a dedicated page**](/docs/api/utilities/html#html-table-output)
|
2022-10-06 00:05:06 +00:00
|
|
|
|
|
|
|
## Delimiter-Separated Output
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Generate CSV from a Worksheet**
|
2022-12-01 01:13:00 +00:00
|
|
|
|
2022-05-16 03:26:04 +00:00
|
|
|
```js
|
2023-06-13 17:49:52 +00:00
|
|
|
var csv = XLSX.utils.sheet_to_csv(ws, opts);
|
2022-12-01 01:13:00 +00:00
|
|
|
```
|
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Export worksheet data in "UTF-16 Text" or Tab-Separated Values (TSV)**
|
2022-12-01 01:13:00 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
```js
|
|
|
|
var txt = XLSX.utils.sheet_to_txt(ws, opts);
|
2022-12-01 01:13:00 +00:00
|
|
|
```
|
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
[**These functions are described in a dedicated page**](/docs/api/utilities/csv)
|
2022-12-01 01:13:00 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
## Formulae Output
|
2022-12-01 01:13:00 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
**Extract all formulae from a worksheet**
|
2022-12-01 01:13:00 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
```js
|
|
|
|
var fmla_arr = XLSX.utils.sheet_to_formulae(ws);
|
2022-07-07 04:05:14 +00:00
|
|
|
```
|
2022-05-16 03:26:04 +00:00
|
|
|
|
2023-06-13 17:49:52 +00:00
|
|
|
[**This function is described in a dedicated page**](/docs/api/utilities/formulae)
|