public-google-sheets-parser

    1.2.6 • Public • Published

    Public Google Sheets Parser

    Author checks npm package codecov license JavaScript Style Guide Hits GitHub stars downloads

    Introduction

    It is a simple and zero dependency parser that helps you use public Google sheets document as if they were a database.

    The document to be used must be a Google Sheets document in the 'public' state and have a header in the first row. (e.g. Google sheets for example)

    You can specify the sheet name to get a data. (Since v1.1.0)

    It does not work in browsers where the fetch API is not available.

    No API key required. This means that the server does not need to use the private key to use the SDK.

    You can also use it via free API. Please see this documentation. If you have a public spreadsheet document, and the first row is a header and you have more than one row of data, you can call it free of charge through this API and use the result as a JSON response.

    Demo page

    Click here

    Installation

    With yarn:

    $ yarn add public-google-sheets-parser

    With npm:

    $ npm i public-google-sheets-parser

    Usage example

    • Node.js
    const PublicGoogleSheetsParser = require('public-google-sheets-parser')
    
    const spreadsheetId = '10WDbAPAY7Xl5DT36VuMheTPTTpqx9x0C5sDCnh4BGps'
    
    // 1. You can pass spreadsheetId when parser instantiation
    const parser = new PublicGoogleSheetsParser(spreadsheetId)
    parser.parse().then((items) => {
      // items should be [{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6},{"a":7,"b":8,"c":9}]
    })
    
    // 2. You can change spreadsheetId on runtime
    const anotherSpreadsheetId = '1oCgY0UHHRQ95snw7URFpOOL_DQcVG_wydlOoGiTof5E'
    parser.id = anotherSpreadsheetId
    parser.parse().then((items) => {
      /* items should be
      [
        {"id":1,"title":"This is a title of 1","description":"This is a description of 1","createdAt":"2020-11-12","modifiedAt":"2020-11-18"},
        {"id":2,"title":"This is a title of 2","description":"This is a description of 2","createdAt":"2020-11-12","modifiedAt":"2020-11-18"},
        ...
      ]
      */
    })
    
    // 3. You can pass the spreadsheet ID when call parse method.
    parser.parse(spreadsheetId).then((items) => {
      // items should be [{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6},{"a":7,"b":8,"c":9}]
    })
    
    
    // 4. You can also pass the name of specific sheet to get.
    parser.parse(spreadsheetId, 'Sheet2').then((items) => {
      // items should be [{"a":10,"b":20,"c":30},{"a":40,"b":50,"c":60},{"a":70,"b":80,"c":90}]
    })

    You can use any of the 4 methods you want!

    • with import (Vue.js or whatever)
    // templates...
    
    import PublicGoogleSheetsParser from 'public-google-sheets-parser'
    
    export default {
      data () {
        return {
          items: [],
        }
      },
      computed: {
        parser () {
          return new PublicGoogleSheetsParser()
        },
      },
      methods: {
        async getItems (spreadsheetId) {
          this.items = await this.parser.parse(spreadsheetId)
        },
      },
    }
    
    // styles...
    • browser
    <script src="https://cdn.jsdelivr.net/npm/public-google-sheets-parser@latest"></script>
    
    <script>
    const spreadsheetId = '10WDbAPAY7Xl5DT36VuMheTPTTpqx9x0C5sDCnh4BGps'
    const parser = new PublicGoogleSheetsParser()
    parser.parse(spreadsheetId).then((items) => {
      // items should be [{ a: 1, b: 2, c: 3 },{ a: 4, b: 5, c: 6 },{ a: 7, b: 8, c: 9 }]
    })
    parser.parse(spreadsheetId, 'Sheet2').then((items) => {
      // items should be [{ a: 10, b: 20, c: 30 }, { a: 40, b: 50, c: 60 }, { a: 70, b: 80, c: 90 }]
    })
    </script>
    curl -X GET "https://api.fureweb.com/spreadsheets/10WDbAPAY7Xl5DT36VuMheTPTTpqx9x0C5sDCnh4BGps" -H "accept: */*"
    
    # response (application/json)
    {"data":[{"a":1,"b":2,"c":3},{"a":4,"b":5,"c":6},{"a":7,"b":8,"c":9}]}

    That's it!

    Install

    npm i public-google-sheets-parser

    DownloadsWeekly Downloads

    360

    Version

    1.2.6

    License

    MIT

    Unpacked Size

    828 kB

    Total Files

    13

    Last publish

    Collaborators

    • fureweb