注册 登录
编程论坛 JavaScript论坛

大神帮帮忙,原生javascript实现excel列头

k2464634 发布于 2015-05-18 08:54, 1141 次点击
大神帮帮忙,原生javascript实现excel列头
例子:
第一列:A
第二列:B
第三列:C


第二十六列:Z
第二十七列:AA
第二十八列:AB


第n列…:BA
             :BB


             :AAA
             :AAB

像这样能一直无限下去。大神们帮帮忙,急用
2 回复
#2
jsRank2015-05-18 12:26
整体思想就是:10进制转26进制
<script>
   
    /**
     *根据列数求对应的列名
     */
    function _recursion(n){
        
        if(n < 1){
            return;
        }

        var asiiCode = (n%26==0?26:n%26) + 64;
        var asiiChar = String.fromCharCode(asiiCode);
        col.push(asiiChar);
        if(n<=26){
            return;
        } else {
            if(n%26==0){
                n = parseInt(n/26 - 1);
            } else {
                n = parseInt(n/26);
            }
            _recursion(n);
        }
    }

    for (var i=1; i < 1000; i++)
    {
        var col = [];
        _recursion(i);
        var colname=col.reverse().join('');
        console.log('第'+i+'列:'+colname);
    }
   </script>

[ 本帖最后由 jsRank 于 2015-5-18 12:28 编辑 ]
1