Как сформировать координаты столбцов для любого порядкового номера в Google Sheets?
Я работаю с google sheets api. И в некоторых моментах бывает необходимо по переданному порядковому номеру столбца извлечь буквенные координаты (допустим, если это 26, то это буква Z и т.д.). С числами <= 26 всё очень просто, можно создать массив с алфавитом и вытаскивать по индексу. А если число больше, то у меня возникают сложности в составлении корректных координат (для 27 это AA и т.д.). Подскажите какой-нибудь алгоритм или предоставьте готовую функцию, которые справятся с любым числом. Я пишу на Php, если это важно. А так, думаю смогу разобрать алгоритм, если он будет написан и на другом языке (кроме ассемблера).
Григорий Боев
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Вот так, например
//Имя столбца по его номеру
function col2A1(col){
let result = "";
let base = 27;
while(col>0){
let newLetter = String.fromCharCode("A".charCodeAt(0)+(col-1)%(base-1));
result=newLetter + result;
col = (col - col%base) / base;
};
return result;
};
// или короткая версия
function col2A1_(r){let o="";for(;0<r;){var t=String.fromCharCode("A".charCodeAt(0)+(r-1)%26);o=t+o,r=(r-r%27)/27}return o}