From 8abe41283a5dc6a341b897cc09450f0e236621f5 Mon Sep 17 00:00:00 2001 From: SheetJS Date: Sun, 24 Jul 2022 16:13:15 -0400 Subject: [PATCH] websql --- .../03-demos/10-database.md | 295 ++++++++++++++++-- .../04-getting-started/03-demos/11-nosql.md | 43 +++ .../docs/04-getting-started/03-demos/index.md | 3 + docz/static/files/websql.png | Bin 0 -> 72108 bytes 4 files changed, 309 insertions(+), 32 deletions(-) create mode 100644 docz/docs/04-getting-started/03-demos/11-nosql.md create mode 100644 docz/static/files/websql.png diff --git a/docz/docs/04-getting-started/03-demos/10-database.md b/docz/docs/04-getting-started/03-demos/10-database.md index 0c5cbd3..2b72523 100644 --- a/docz/docs/04-getting-started/03-demos/10-database.md +++ b/docz/docs/04-getting-started/03-demos/10-database.md @@ -1,6 +1,6 @@ --- -sidebar_position: 9 -title: Databases +sidebar_position: 10 +title: Databases and SQL --- import current from '/version.js'; @@ -16,6 +16,9 @@ This demo discusses general strategies and provides examples for a variety of database systems. The examples are merely intended to demonstrate very basic functionality. +Key-value stores, unstructured use of Document Databases, and other schema-less +databases are covered in the [NoSQL demo](./nosql). + ## Structured Tables @@ -91,9 +94,9 @@ Document databases like MongoDB tend not to require schemas. Arrays of objects can be used directly without setting up a schema: ```js -const aoa = XLSX.utils.sheet_to_json(ws); +const aoo = XLSX.utils.sheet_to_json(ws); // highlight-next-line -await db.collection('coll').insertMany(aoa, { ordered: true }); +await db.collection('coll').insertMany(aoo, { ordered: true }); ``` ::: @@ -203,19 +206,18 @@ function SheetJSQLWriter() { else values.push(`'${v.toString().replaceAll("'", "''")}'`); }) if(fields.length) return `INSERT INTO \`${wsname}\` (${fields.join(", ")}) VALUES (${values.join(", ")})`; - })).filter(x => x).slice(0, 5); + })).filter(x => x).slice(0, 6); } const [url, setUrl] = React.useState("https://sheetjs.com/cd.xls"); const set_url = React.useCallback((evt) => setUrl(evt.target.value)); const [out, setOut] = React.useState(""); const xport = React.useCallback(async() => { - console.log(url); const ab = await (await fetch(url)).arrayBuffer(); const wb = XLSX.read(ab), wsname = wb.SheetNames[0]; setOut(generate_sql(wb.Sheets[wsname], wsname).join("\n")); }); - return ( <> {out && (
{out}
)} + return ( <> {out && (<>{url}
{out}
)} URL:
); @@ -223,7 +225,7 @@ function SheetJSQLWriter() { ``` -## SQL +## Databases ### SQLite @@ -349,6 +351,9 @@ XLSX.writeFile(wb, "bun.xlsx"); This information is included for legacy deployments. Web SQL is deprecated. has up-to-date info on browser support. +[Firefox](https://nolanlawson.com/2014/04/26/web-sql-database-in-memoriam/) +never supported Web SQL. Safari 13 dropped support. As of the time of writing, +the current Chrome version (103) supports WebSQL. :::: @@ -358,37 +363,263 @@ work as-is in WebSQL. The public demo generates a database from workbook. +Importing data from spreadsheets is straightforward using the `generate_sql` +helper function from ["Building Schemas"](#building-schemas-from-worksheets): -## Objects, K/V and "Schema-less" Databases +```js +const db = openDatabase('sheetql', '1.0', 'SheetJS WebSQL Test', 2097152); +const stmts = generate_sql(ws, wsname); +// NOTE: tx.executeSql and db.transaction use callbacks. This wraps in Promises +for(var i = 0; i < stmts.length; ++i) await new Promise((res, rej) => { + db.transaction(tx => + tx.executeSql(stmts[i], [], + (tx, data) => res(data), // if the query is successful, return the data + (tx, err) => rej(err) // if the query fails, reject with the error + )); +}); +``` -So-called "Schema-less" databases allow for arbitrary keys and values within the -entries in the database. K/V stores and Objects add additional restrictions. +The result of a SQL SELECT statement is a `SQLResultSet`. The `rows` property +is a `SQLResultSetRowList`. It is an "array-like" structure that has `length` +and properies like `0`, `1`, etc. However, this is not a real Array object. +A real Array can be created using `Array.from`: -There is no natural way to translate arbitrarily shaped schemas to worksheets -in a workbook. One common trick is to dedicate one worksheet to holding named -keys. For example, considering the JS object: +```js +const db = openDatabase('sheetql', '1.0', 'SheetJS WebSQL Test', 2097152); +db.readTransaction(tx => + tx.executeSQL("SELECT * FROM DatabaseTable", [], (tx, data) => { + // data.rows is "array-like", so `Array.from` can make it a real array + const aoo = Array.from(data.rows); + const ws = XLSX.utils.json_to_sheet(aoo); + // ... it is recommended to perform an export here OR wrap in a Promise + }) +); +``` -```json -{ - "title": "SheetDB", - "metadata": { - "author": "SheetJS", - "code": 7262 - }, - "data": [ - { "Name": "Barack Obama", "Index": 44 }, - { "Name": "Donald Trump", "Index": 45 }, - ] +The following demo generates a database with hardcoded SQL statements. Queries +can be changed in the Live Editor. The WebSQL database can be inspected in the +"WebSQL" section of the "Application" Tab of Developer Tools: + +![WebSQL DevTools](pathname:///files/websql.png) + +```jsx live +function SheetQL() { + const [out, setOut] = React.useState(""); + const queries = [ + 'DROP TABLE IF EXISTS Presidents', + 'CREATE TABLE Presidents (Name TEXT, Idx REAL)', + 'INSERT INTO Presidents (Name, Idx) VALUES ("Barack Obama", 44)', + 'INSERT INTO Presidents (Name, Idx) VALUES ("Donald Trump", 45)', + 'INSERT INTO Presidents (Name, Idx) VALUES ("Joseph Biden", 46)' + ]; + const xport = React.useCallback(async() => { + // prep database + const db = openDatabase('sheetql', '1.0', 'SheetJS WebSQL Test', 2097152); + + for(var i = 0; i < queries.length; ++i) await new Promise((res, rej) => { + db.transaction((tx) => { + tx.executeSql(queries[i], [], (tx, data) => res(data), (tx, err) => rej(err)); + }); + }); + + // pull data and generate rows + db.readTransaction(tx => { + tx.executeSql("SELECT * FROM Presidents", [], (tx, data) => { + const aoo = Array.from(data.rows); + setOut("QUERY RESULT:\n" + aoo.map(r => JSON.stringify(r)).join("\n") + "\n") + const ws = XLSX.utils.json_to_sheet(aoo); + const wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, "Presidents"); + XLSX.writeFile(wb, "SheetQL.xlsx"); + }); + }); + }); + return (
{out}
); } ``` -A dedicated worksheet should store the one-off named values: +### LocalStorage and SessionStorage +The Storage API, encompassing `localStorage` and `sessionStorage`, describes +simple key-value stores that only support string values and keys. + +Arrays of objects can be stored using `JSON.stringify` using row index as key: + +```js +const aoo = XLSX.utils.sheet_to_json(ws); +for(var i = 0; i < aoo.length; ++i) localStorage.setItem(i, JSON.stringify(aoo[i])); ``` -XXX| A | B | ----+-----------------+---------+ - 1 | Path | Value | - 2 | title | SheetDB | - 3 | metadata.author | SheetJS | - 4 | metadata.code | 7262 | + +Recovering the array of objects is possible by using `JSON.parse`: + +```js +const aoo = []; +for(var i = 0; i < localStorage.length; ++i) aoo.push(JSON.parse(localStorage.getItem(i))); +const ws = XLSX.utils.json_to_sheet(aoo); ``` + +This example will fetch , fill `localStorage` with +rows, then generate a worksheet from the rows and write to a new file. + +:::caution + +This example is for illustration purposes. If array of objects is available, it +is strongly recommended to convert that array to a worksheet directly. + +::: + +```jsx live +function SheetJStorage() { + const [url, setUrl] = React.useState("https://sheetjs.com/cd.xls"); + const set_url = React.useCallback((evt) => setUrl(evt.target.value)); + const [out, setOut] = React.useState(""); + const xport = React.useCallback(async() => { + // get first worksheet data as array of objects + const ab = await (await fetch(url)).arrayBuffer(); + const wb = XLSX.read(ab), wsname = wb.SheetNames[0]; + const aoo = XLSX.utils.sheet_to_json(wb.Sheets[wsname]); + + // reset and populate localStorage + localStorage.clear(); + for(var i = 0; i < aoo.length; ++i) localStorage.setItem(i, JSON.stringify(aoo[i])); + + // create new array of objects from localStorage + const new_aoo = []; + for(var i = 0; i < localStorage.length; ++i) { + const row = JSON.parse(localStorage.getItem(i)); + new_aoo.push(row); + } + + setOut(`Number of rows in LocalStorage: ${localStorage.length}`); + + // create and export workbook + const new_ws = XLSX.utils.json_to_sheet(new_aoo); + const new_wb = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(new_wb, new_ws, "Sheet1"); + XLSX.writeFile(new_wb, "SheetJStorage.xlsx"); + }); + + return ( <> {out && (<>{url}
{out}
)} + URL: +
+ ); +} +``` + + +### IndexedDB + +[`localForage`](https://localforage.github.io/localForage/) is a lightweight +IndexedDB wrapper that presents an async Storage interface. + +Arrays of objects can be stored using `JSON.stringify` using row index as key: + +```js +const aoo = XLSX.utils.sheet_to_json(ws); +for(var i = 0; i < aoo.length; ++i) await localForage.setItem(i, JSON.stringify(aoo[i])); +``` + +Recovering the array of objects is possible by using `JSON.parse`: + +```js +const aoo = []; +for(var i = 0; i < localForage.length; ++i) aoo.push(JSON.parse(await localForage.getItem(i))); +const wb = XLSX.utils.json_to_sheet(aoo); +``` + + + +### MongoDB Structured Collections + +:::warning MongoDB Relicense + +This demo was originally written when MongoDB was licensed under AGPLv3. It was +relicensed in 2018 to the Server-Side Public License. This demo was tested with +the "MongoDB Community Server" and may not work with the "Enterprise" Server. + +::: + +MongoDB is a popular document-oriented database engine. + +It is straightforward to treat collections as worksheets. Each object maps to +a row in the table. + +The official NodeJS connector is [`mongodb` on NPM](https://npm.im/mongodb). + +Worksheets can be generated from collections by using `Collection#find`. A +`projection` can suppress the object ID field: + +```js +/* generate a worksheet from a collection */ +const aoo = await collection.find({}, {projection:{_id:0}}).toArray(); +const ws = utils.json_to_sheet(aoo); +``` + +Collections can be populated with data from a worksheet using `insertMany`: + +```js +/* import data from a worksheet to a collection */ +const aoo = XLSX.utils.sheet_to_json(ws); +await collection.insertMany(aoo, {ordered: true}); +``` + +
Complete Example (click to show) + +:::caution + +When this demo was last tested, the `mongodb` module did not work with Node 18. +It was verified in Node 16.16.0. + +::: + +1) Install the dependencies: + +```bash +$ npm i --save https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz mongodb +``` + +2) Start a MongoDB server on localhost (follow official instructions) + +3) Save the following to `SheetJSMongoCRUD.mjs` (the key step is highlighted): + +```js title="SheetJSMongoCRUD.mjs" +import { writeFile, set_fs, utils } from 'xlsx/xlsx.mjs'; +import * as fs from 'fs'; set_fs(fs); +import { MongoClient } from 'mongodb'; + +const url = 'mongodb://localhost:27017/sheetjs'; +const db_name = 'sheetjs'; + +(async() => { +/* Connect to mongodb server */ +const client = await MongoClient.connect(url, { useUnifiedTopology: true }); + +/* Sample data table */ +const db = client.db(db_name); +try { await db.collection('pres').drop(); } catch(e) {} +const pres = db.collection('pres'); +await pres.insertMany([ + { name: "Barack Obama", idx: 44 }, + { name: "Donald Trump", idx: 45 }, + { name: "Joseph Biden", idx: 46 } +], {ordered: true}); + +// highlight-start +/* Export database to XLSX */ +const wb = utils.book_new(); +const aoo = await pres.find({}, {projection:{_id:0}}).toArray(); +const ws = utils.json_to_sheet(aoo); +utils.book_append_sheet(wb, ws, "Presidents"); +writeFile(wb, "SheetJSMongoCRUD.xlsx"); +// highlight-end + +/* Close connection */ +client.close(); +})(); +``` + +4) Run `node SheetJSMongoCRUD.mjs` and open `SheetJSMongoCRUD.xlsx` + +
+ + diff --git a/docz/docs/04-getting-started/03-demos/11-nosql.md b/docz/docs/04-getting-started/03-demos/11-nosql.md new file mode 100644 index 0000000..47c497e --- /dev/null +++ b/docz/docs/04-getting-started/03-demos/11-nosql.md @@ -0,0 +1,43 @@ +--- +sidebar_position: 11 +title: NoSQL Data Stores +--- + +So-called "Schema-less" databases allow for arbitrary keys and values within the +entries in the database. K/V stores and Objects add additional restrictions. + +:::note + +These data stores are capable of storing structured data. Those use cases are +covered in the [Database demo](./database). + +::: + +There is no natural way to translate arbitrarily shaped schemas to worksheets +in a workbook. One common trick is to dedicate one worksheet to holding named +keys. For example, considering the JS object: + +```json +{ + "title": "SheetDB", + "metadata": { + "author": "SheetJS", + "code": 7262 + }, + "data": [ + { "Name": "Barack Obama", "Index": 44 }, + { "Name": "Donald Trump", "Index": 45 }, + ] +} +``` + +A dedicated worksheet should store the one-off named values: + +``` +XXX| A | B | +---+-----------------+---------+ + 1 | Path | Value | + 2 | title | SheetDB | + 3 | metadata.author | SheetJS | + 4 | metadata.code | 7262 | +``` diff --git a/docz/docs/04-getting-started/03-demos/index.md b/docz/docs/04-getting-started/03-demos/index.md index 08aea0f..0623fbc 100644 --- a/docz/docs/04-getting-started/03-demos/index.md +++ b/docz/docs/04-getting-started/03-demos/index.md @@ -12,6 +12,9 @@ The demo projects include small runnable examples and short explainers. - [`XMLHttpRequest and fetch`](https://github.com/SheetJS/SheetJS/tree/master/demos/xhr/) - [`Clipboard Data`](./clipboard) - [`Typed Arrays for Machine Learning`](./ml) +- [`LocalStorage and SessionStorage`](./database#localstorage-and-sessionstorage) +- [`Web SQL Database`](./database#websql) +- [`IndexedDB`](./database#indexeddb) ### Frameworks diff --git a/docz/static/files/websql.png b/docz/static/files/websql.png new file mode 100644 index 0000000000000000000000000000000000000000..02ae7cf9246a6ab796809820da767e2c8e5f811a GIT binary patch literal 72108 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