npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@liquicode/jsonstor-excel

v0.2.0

Published

A jsonstor adapter which stores documents in an Excel worksheet or CSV file.

Readme

jsonstor-excel

Home: http://jsonstor.liquicode.com

Version: 0.2.0

Documents are stored in an Excel spreadsheet file.

Overview

jsonstor defines one interface for working with a document store and implements it for a variety of database products and file formats. The interface is the same whichever adapter is underneath, so the storage a project uses becomes a configuration decision rather than a structural one.

This package is one such adapter. Documents are stored in an Excel spreadsheet file.

It is packaged separately so that it stays optional. A project which does not store documents this way never downloads xlsx.

See @liquicode/jsonstor for the interface, and jsonstor.liquicode.com for the documentation.

Getting Started

npm install --save @liquicode/jsonstor-excel
const jsonstor = require( '@liquicode/jsonstor' )();
jsonstor.LoadPlugin( require( '@liquicode/jsonstor-excel' ) );

let storage = jsonstor.GetStorage( 'jsonstor-excel', {
	Path: '...',
	SheetName: '...',
	AutoFlush: true,
	PrimaryKey: "_id",
	PrimaryKeyMutable: false,
	HostIndex: false,
} );

Settings

| Setting | Required | Default | Description | |---|:---:|:---:|---| | Path | Yes | - | Path to the Excel or CSV file storing the data. | | SheetName | Yes | - | The name of the worksheet storing the data. | | AutoFlush | No | true | Write the workbook on every insert, update, replace, and delete. | | PrimaryKey | No | "_id" | The field which holds the identifier. Set it to the key field of an existing store. | | PrimaryKeyMutable | No | false | Allow an update or replacement to change the identifier. When false, such an operation is refused. | | HostIndex | No | false | Keep an index of identifiers, so a search by identifier does not read the whole collection. If something else writes the store, call RefreshIndex(). |

Peculiarities

  • A document is a row. The first row of the worksheet holds the field names, and each document is a row below it. A field no earlier document had adds a column.
  • The whole worksheet is kept in memory, as in jsonstor-jsonfile, and the workbook is rewritten on each write, or on FlushStorage() with AutoFlush: false.
  • An object or array is stored as JSON text in its cell, and read back as the object or array.
  • A field holding null reads back absent, because an empty cell cannot tell the two apart.
  • A Path ending in .csv is written as CSV, which holds one worksheet.
  • Use it to share a collection with someone who works in Excel.

Storage Interface

Every adapter implements the same functions, and they are documented once: Storage Interface.

The operator list is not repeated here. A criteria, a projection, and an update are the engine's, and the list changes whenever the engine gains an operator - a copy in this file could only ever be out of date. See the Operator Reference.

Dependencies

License

MIT