Convert column number to Excel title
Задача: Необходимо вернуть заголовок столбца в Excel по порядковому номеру N.
A -> 1
B -> 2
C -> 3
…
Z -> 26
AA -> 27
AB -> 28
…
Входные данные: N — целое число от 1 до 2³¹ — 1.
Вывод: заголовок столбца в Excel
Примеры:
- N = 1
Output: “A” - N = 28
Output: “AB” - N = 701
Output: “ZY”
Разбор
Для простоты разберем на простом примере. Мы знаем, что номер столбца для столбца “ABZ” закодирован по следующей формуле:
N = A * 26² + B * 26¹ + Z * 26⁰
N = A * 26² + B * 26¹ + Z
Чтобы получить символ Z нам нужно взять остаток от деления на 26:
N % 26 = Z
Далее мы делим N на 26, тем самым мы двигаемся к следующему символу (B) и повторяем процесс. Таким образом мы получим все символы столбца под номером N.
В реализации стоит учесть, что в Excel нумерация столбцов идет от 1, в коде же нумерация смиволов A-Z будет начинаться с 0. Поэтому перед началом каждой итерации, мы уменьшаем текущий номер на 1.
Детали реализации смотрите ниже.
Реализация
https://gist.github.com/unilecs/9816810892bda78415466dcb8b154a97