@andrewlevada/public-google-sheets-parser
v1.2.10
Published
Get JSONArray from public google sheets with using only spreadsheetId
Downloads
8
Maintainers
Readme
Public Google Sheets Parser
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
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>
- free API (documentation)
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!