Skip to content

Instantly share code, notes, and snippets.

@SIFAR786
Forked from rheajt/Code.gs
Created June 3, 2018 23:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SIFAR786/cd6d8254855969f4fdffce0e124e0b87 to your computer and use it in GitHub Desktop.
Save SIFAR786/cd6d8254855969f4fdffce0e124e0b87 to your computer and use it in GitHub Desktop.
google apps script convert column number to letter
function columnToLetter(column, row) {
var temp, letter = '';
while (column > 0) {
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter + row;
}
function getCategories() {
var namedRanges = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges();
var categories = {};
for(var i = 0; i < namedRanges.length; i++) {
var category = namedRanges[i].getRange().getValues();
categories[category.shift()] = category.map(function(each) {return each.toString();});
}
return categories;
}
function getCategoryList() {
var categories = getCategories();
var keyArr = [];
for(var key in categories) {
keyArr.push(key);
}
Logger.log(keyArr.join(','));
}
function onEdit(e) {
var categories = getCategories();
var subCategoryCell = columnToLetter(e.range.getColumn() + 1, e.range.getRow());
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2');
var vals = categories[e.value];
var rule = SpreadsheetApp.newDataValidation().requireValueInList(vals, true).build();
sheet.getRange(subCategoryCell).clear().setDataValidation(rule);
}
/**
* Column to Letter
* from StackOverflow: http://stackoverflow.com/questions/21229180/convert-column-index-into-corresponding-column-letter
*/
function columnToLetter(column) {
var temp, letter = '';
while (column > 0) {
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment