Very basic nodejs based command line tool to map and upload csv data into a google spreadsheets using the google sheets api.
Install a recent node.js environment
Generate google sheets api credentials described in "Step 1: Turn on the Google Sheets API": https://developers.google.com/sheets/api/quickstart/nodejs. Place credentials.json in the script folder.
git clone https://github.com/alexschmid-igsb/upload2spreadsheet.git
cd upload2spreadsheet
npm install
Create an upload configuration file:
{
"csv": {
"fileName": "autozygosity_münchen.csv",
"idColumn": "id"
},
"spreadsheet": {
"spreadsheetId": "1k8zBWi2xC9h9JNYrhCTSb-hb4EnUlYz7cc8dskdEydg",
"sheetName": "Munich",
"idColumn": "D"
},
"mappings": [
{
"source": "id",
"target": "G"
},
{
"source": "autozygosity",
"target": "AZ",
"transformer": "calculateValue.js"
}
],
"onNull": "KEEP"
}
IMPORTANT: The csv.fileName
path is defined relative to the path of the config file. The csv file must provide a header column to identify column names.
Fields csv.idColumn
and spreadsheet.idColumn
describe column names and will be used to link csv records to corresponding spreadsheet rows.
Field mappings.source
specifies the source column from the csv file and mappings.target
the target column in the spreadsheet.
The field onNull
specifies the default behavior for null
values: KEEP
keeps the existing values and ignores null
values while DELETE
deletes all values with null
entries.
npm run upload2spreadsheet ./autozygosity_münchen/settings.json