diff --git a/docz/docs/04-getting-started/03-demos/06-clipboard.md b/docz/docs/04-getting-started/03-demos/06-clipboard.md index e440444..2c9bedd 100644 --- a/docz/docs/04-getting-started/03-demos/06-clipboard.md +++ b/docz/docs/04-getting-started/03-demos/06-clipboard.md @@ -167,7 +167,7 @@ a simple CFB file that can be parsed: const { clipboard } = require('electron') const XLSX = require("xlsx"); const buf = clipboard.readBuffer('dyn.ah62d4qmxhk4d425try1g44pdsm11g55gsu1en5pcqzwc4y5tsz3gg3k'); -const cfb = XLSX.CFB.read(rtf, {type: "buffer"}); +const cfb = XLSX.CFB.read(buf, {type: "buffer"}); const pkg = XLSX.CFB.find(cfb, "Package").content; const wb = XLSX.read(pkg); ``` diff --git a/docz/docs/04-getting-started/03-demos/11-nosql.md b/docz/docs/04-getting-started/03-demos/11-nosql.md index 47c497e..9f5d000 100644 --- a/docz/docs/04-getting-started/03-demos/11-nosql.md +++ b/docz/docs/04-getting-started/03-demos/11-nosql.md @@ -13,6 +13,8 @@ covered in the [Database demo](./database). ::: +## Arbitrary Data to Spreadsheets + 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: @@ -41,3 +43,63 @@ XXX| A | B | 3 | metadata.author | SheetJS | 4 | metadata.code | 7262 | ``` + +## Data Stores + +### Redis + +Redis has 5 core data types: "String", List", "Set", "Sorted Set", and "Hash". +Since the keys and values are limited to simple strings (and numbers), it is +possible to store complete databases in a single worksheet. + +
Sample Mapping (click to hide) + +The first row holds the data type and the second row holds the property name. + +Strings can be stored in a unified String table. The first column holds keys +and the second column holds values: + +``` +XXX| A | B | +---+---------+-------+ + 1 | Strings | | + 2 | | | + 3 | Hello | World | + 4 | Sheet | JS | +``` + +Lists and Sets are unidimensional and can be stored in their own columns. The +second row holds the list name: + +``` +XXX| C | D | +---+---------+-------+ + 1 | List | Set | + 2 | List1 | Set1 | + 3 | List1V1 | Set1A | + 4 | List1V2 | Set1B | +``` + +Sorted Sets have an associated score which can be stored in the second column: + +``` +XXX| E | F | +---+---------+---+ + 1 | Sorted | | + 2 | ZSet1 | | + 3 | Key1 | 1 | + 4 | Key2 | 2 | +``` + +Hashes are stored like the string table, with key and value columns in order: + +``` +XXX| G | H | +---+-------+-------+ + 1 | Hash | | + 2 | Hash1 | | + 3 | Key1 | Val1 | + 4 | Key2 | Val2 | +``` + +