Преобразование чисел в буквы за пределами алфавита из 26 символов - PullRequest
16 голосов
/ 23 ноября 2011

Я создаю некоторые функции на стороне клиента для сопоставимой функции экспорта электронных таблиц.

Я использую jQuery для управления порядком сортировки столбцов, но каждый столбец упорядочен, как электронная таблица Excel, т.е.

Как мне сгенерировать число в виде буквы? Должен ли я определить фиксированный массив значений? Или есть динамический способ создать это?

Ответы [ 2 ]

50 голосов
/ 23 ноября 2011

Я думаю, вы ищете что-то вроде этого

    function colName(n) {
        var ordA = 'a'.charCodeAt(0);
        var ordZ = 'z'.charCodeAt(0);
        var len = ordZ - ordA + 1;
      
        var s = "";
        while(n >= 0) {
            s = String.fromCharCode(n % len + ordA) + s;
            n = Math.floor(n / len) - 1;
        }
        return s;
    }

// Example:

    for(n = 0; n < 125; n++)
            document.write(n + ":" + colName(n) + "<br>");
1 голос
/ 23 ноября 2011

Вы можете использовать такой код, предполагая, что numbers содержит номера ваших столбцов.Поэтому после этого кода вы получите имена строк для ваших столбцов:

var letters = ['a', 'b', 'c', ..., 'z'];
var numbers = [1, 2, 3, ...];
var columnNames = [];
for(var i=0;i<numbers.length;i++) {
    var firstLetter = parseInt(i/letters.length) == 0 ? '' : letters[parseInt(i/letters.length)];
    var secondLetter = letters[i%letters.length-1];
    columnNames.push(firstLetter + secondLetter);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...