| Function | Return type | Brief description |
|---|---|---|
| isNumber | boolean |
Return true if a object is a number. |
| toANotation | string |
Return column letter. For example, 0 return A, 1 return B. |
| read | Object[] |
Return a array of objects with values of a sheet. |
| write | void |
Write data on a sheet. |
See Jon Schlinkert repository.
Given a column number (starting at zero), return a column letter. This function translete array index to a column letter of a sheet.
toANotation(0); // return 'A'
toANotation(5); // return 'F'
toANotation(75); // return 'BX'| Name | Type | Description |
|---|---|---|
| number | Integer |
column number starting at zero |
String - the column letter.
Return a array of row objects, for default the keys are the letter column with and rowIdx key with row index as value.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var rows = read(spreadsheet.getUrl(), sheet.getName(), 2);
console.log(Object.keys(rows[0])); // [ 'rowIdx', 'A', 'B' ]With model key in config object, you can rename the keys of row object. The value of model most be a object such that key name is the column letter and value is the new key name. The row object only will have the rename keys and rowIdx key.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var rows = read(spreadsheet.getUrl(), sheet.getName(), 2, {
model: {
A: 'id',
B: 'name',
},
});
console.log(Object.keys(rows[0])); // [ 'rowIdx', 'id', 'name' ]The value of class key, in config object, most be a constructor function or class. When this key is include, the function read return a array of instances of the class. In this case, the instances don't have the rowIdx key for default.
The constructor function most have one parameter. This parameter have the row data with keys default (column letter) or renamed keys with model key.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
function Person(row) {
this.rowIdx = row.rowIdx;
this.id = row.A;
this.name = row.B;
this.sayHello = function () {
return `Hi! I'am ${this.name}`;
};
}
var rows = read(spreadsheet.getUrl(), sheet.getName(), 2, {
class: Person,
});
console.log(Object.keys(rows[0])); // [ 'rowIdx', 'id', 'name', 'sayHello' ]var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var model = {
A: 'id',
B: 'name',
};
function Person(row) {
this.rowIdx = row.rowIdx;
this.id = row.id;
this.name = row.name;
this.sayHello = function () {
return `Hi! I'am ${this.name}`;
};
}
var rows = read(spreadsheet.getUrl(), sheet.getName(), 2, {
model: model,
class: Person,
});
console.log(Object.keys(rows[0])); // [ 'rowIdx', 'id', 'name', 'sayHello' ]The oneRow key of config object accept a boolean value. It is false for default. When it is true, read function return a array of length 1 with start row values.
It's helpful when you use events and only need the trigger row.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var rows = read(spreadsheet.getUrl(), sheet.getName(), 2, {
oneRow: true,
});
console.log(rows.length); // 1The filter key of config object accept a callback function. Uses filter on result array is same a use filter option.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
function callback(value, index, array) {
return index % 2 == 0;
}
var evenRows = read(spreadsheet.getUrl(), sheet.getName(), 2, {
filter: callback,
});
var rows = read(spreadsheet.getUrl(), sheet.getName(), 2);
var filteredRows = rows.filter(callback);
console.log(evenRows);
console.log(filteredRows);
// evenRows is the same as filteredRows| Name | Type | Description |
|---|---|---|
| url | String |
Spreadsheet url |
| sheetname | String |
Sheet name |
| startRow | Integer |
Row number from which it will be read |
| config.model | Object |
Object with key as column letters, values as new key name |
| config.class | function or class |
Constructor function or class |
| config.oneRow | Boolean |
If it is true, return a array of length one. Default is false |
| config.filter | function |
Callback function for filter. Most return a boolean value |
Object[] - array with row values as a object.
Write data on a sheet. The paramater data is a object with keys as column letter.
If rowIndex is equal -1 or it is omitted, the function write on a new row under of the last row.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
write(spreadsheet.getUrl(), sheet.getName(), {
A: 2,
B: 'Jane Doe',
});| Name | Type | Description |
|---|---|---|
| url | String |
Spreadsheet url |
| sheetname | String |
Sheet name |
| rowIndex | Integer |
row number |
String - the column letter.
Copyright (c) 2020-2021 Héctor Olvera Vital
Licensed under the MIT License