Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

oh-my-spreadsheets

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

oh-my-spreadsheets

There is a library that provides convenient features for working with Google spreadsheets

  • 1.0.3
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Oh my spreadsheets

npm version

demo

Easy to use and type-safe library that allows seamless interaction with Google Spreadsheets as if they were a database.

Tip: Works exceptionally well with TypeScript

Prerequisites

  • To get started, you'll need to obtain a credentials file for your service account, which will be used to interact with your Google Spreadsheet. link1, link2 (My blog in Russian)

  • After that you will need the client_email and private_key fields from the received file.

Env variables

GSAPI_TABLE_ID="table-id" # https://docs.google.com/spreadsheets/d/<table-id>/edit#gid=0
GSAPI_CLIENT_EMAIL="client_email field from credentials file"
GSAPI_CLIENT_PRIVATE_KEY="private_key field from credentials file"

Quick start

  • Install oh-my-spreadsheets as a dependency in your project npm i oh-my-spreadsheets

  • Then, only you need is extend Table and specify your table scheme as const (important for typescript checking)

import { Table } from "oh-my-spreadsheets";

const userSchema = {
    A: 'username',
    B: 'email'
} as const;

class UsersTable extends Table<typeof userSchema> {}

export const usersTable = new UsersTable(userSchema, {
    tableId: process.env.GSAPI_TABLE_ID!,
    email: process.env.GSAPI_CLIENT_EMAIL!,
    privateKey: process.env.GSAPI_CLIENT_PRIVATE_KEY!,
});

// First, you should init table once
await usersTable.init();

// Receive rows 
const users = await usersTable.list({ limit: 10, offset: 0 });

// Add row
await usersTable.append({
    data: { username: 'test', email: 'asdasd@mail.com' }
})

// Update any rows that have an username with value "test"
await usersTable.remove({
    where: { username: 'test' }
})

// Update any rows that have an empty email field.
await usersTable.update({
    where: { email: '' },
    data: { email: 'supportmail@gmail.com' }
})

Keywords

FAQs

Package last updated on 22 Nov 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc