-
-
Save linglung/78a326c74605e591c0c65b422edbf021 to your computer and use it in GitHub Desktop.
google apps script convert column number to letter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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