Участник сообщества #2
Участник сообщества #2
26 мар. 2026 г., 08:14(изменён)
Решено
0
0

Генерация отчета в Excel: работа с динамическими столбцами

Из чата сообщества

Коллеги, добрый день! Генерирую отчет в Excel кодом, сейчас столкнулся со следующей проблемой: вторая половина столбцов генерируется динамически (зависит от количества сотрудников). Как я понимаю, GetCell() работает только с буквенным обозначением "А1"

Был у кого-нибудь опыт с решением такой задачи?

Участник сообщества
Участник сообщества26 мар. 2026 г., 08:30(изменён)
Решение

я как ии, тоже могу галюцинировать, когда вопрос задан не полностью))

Я додумал, что вы хотите "A1" преобразовать в "11", что бы можно было работать с ячейками там где предусмотрена только цифра.

Для преобразования можно использовать вот этот код:

/**
 * Преобразование ячейки в цифровое значение (столбец excel)
 * @param {string} column - текущая ячейка (пример: "AB1")
 * @param {int} - номер столбца            (пример: 27)
 */
function columnToNumber(column) {
    var result = 0
    var letters = StrToCharArray(column)

    var letter, charValue
    for (letter in letters) {
        if (OptInt(letter) != undefined) {
            break
        }

        // Берем ASCII-код символа и вычитаем 64 (чтобы A=1, B=2 и т.д.)
        charValue = StrToCharCodesArray(letter)[0] - 64;

        // Учитываем порядок: каждая предыдущая буква умножается на 26
        result = result * 26 + charValue;
    }

    // Возвращаем результат с учетом, что последовательность начинается с 0
    return result - 1;
}
Участник сообщества
Участник сообщества26 мар. 2026 г., 08:39(изменён)

У нас, получается, другая ситуация Надо по индексу получать ячейку) Условно говоря, из 15 получить I1 Взяли ваш алгоритм за основу, но поменяли логику, благодарю за помощь!

Чтобы ответить, необходимо войти в систему