https://github.com/coderofsalvation/gspreadsheet-bash
portable google spreadsheet bash client for easily piping/replacing data between spreadsheets
https://github.com/coderofsalvation/gspreadsheet-bash
Last synced: 10 months ago
JSON representation
portable google spreadsheet bash client for easily piping/replacing data between spreadsheets
- Host: GitHub
- URL: https://github.com/coderofsalvation/gspreadsheet-bash
- Owner: coderofsalvation
- License: gpl-2.0
- Created: 2014-08-27T11:30:22.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2020-05-28T19:06:56.000Z (about 6 years ago)
- Last Synced: 2025-03-26T14:21:51.296Z (over 1 year ago)
- Language: Shell
- Homepage:
- Size: 32.2 KB
- Stars: 13
- Watchers: 3
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
gspreadsheet-bash
=================
portable google spreadsheet bash client which lets you combine your unix-fu with spreadsheets. Piping/replacing spreadsheet from the console for lazy developers :)
# Usage
gspreadsheet
types: are 'xls' 'csv' 'pdf' 'ods' 'tsv' 'ods' or 'html'
$ user=my@email.com pass=googlepasswd gspreadsheet export 'My spreadsheet' 12323
$ echo "foo\tflop" | user=my@email.com pass=googlepasswd gspreadsheet import 'My spreadsheet' 12323
$ echo '"foo","bar"' | user=my@email.com pass=googlepasswd gspreadsheet import 'My spreadsheet' 12323 csv
$ ls -al | gspreadsheet ssvtotsv | user=my@email.com pass=googlepasswd gspreadsheet import 'My spreadsheet' 12323 csv
The sheetgid can be found in the googlespreadsheet browserurl.
These urls end with '#gid=123' (so 123 is the sheetgid).
Import takes tabseperated (tsv) as input, not spaceseparated (ssv).
# Example: Spreadsheet to console
user=my@email.com pass=googlepasswd gspreadsheet export 'My spreadsheet' 12323
foo4 bar4
foo1 bar1
foo2 bar3
Now you can go crazy with sed, awk and your shell-fu!
# Example: Spreadsheet to .XXX
user=my@email.com pass=googlepasswd gspreadsheet export 'My spreadsheet' 12323 pdf > report.pdf
user=my@email.com pass=googlepasswd gspreadsheet export 'My spreadsheet' 12323 csv > report.csv
Now you can go crazy with cron and load data in your application.
# Example: Search/Replace
$ export user="my@email.com"
$ export pass="owerwer"
$ gspreadsheet export "My spreadsheet" 123 | sed 's/flip/flop/g' | gspreadsheet import "My spreadsheet" 123
# Example: Mysql-table to spreadsheet
$ export user="my@email.com"
$ export pass="owerwer"
$ echo "select * from users" | mysql -uusername -ppassword db_name | gspreadsheet import 'My spreadsheet' 123
# Example: Import Console-fu
$ export user="my@email.com"
$ export pass="owerwer"
$ ls -la | gspreadsheet ssvtotsv | gspreadsheet import "My spreadsheet" 123
Import takes tabseperated (tsv) as input, not spaceseparated (ssv).

# Todos
* add row function (import fully overwrites sheet)
Strangely enough the gspreadsheet api v3 does not simply allow adding rows without knowing the columnnames. Quite a pity, because it makes thing much more complex to implement.
# Requirements
* any linux distro (bash+curl+gawk)