Orleans9 2021-05-11 17:25 采纳率: 50%
浏览 60
已采纳

算法:如何确定第N列在Excel中对应的横坐标,反之如何确定Excel横坐标对应第多少列

Excel中横坐标是用英文字母表示 如第1列是A;第27列是AA;第28列AB;第702列是ZZ;第703列是AAA ;704列AAB;以此类推

那么第999999列所对应的横坐标是什么;

横坐标为ABBBBBZ是第多少列。求js算法

  • 写回答

2条回答 默认 最新

  • 斯洛文尼亚旅游 2021-05-11 17:51
    关注
    
        var ConvertNum = function (str) {
            str = str.toUpperCase();
            var n = 0;
            var s = str.match(/./g);//求出字符数组
            var j = 0;
            for (var i = str.length - 1, j = 1; i >= 0; i--, j *= 26) {
                var c = s[i].toUpperCase();
                if (c < 'A' || c > 'Z') {
                    return 0;
                }
                n += (c.charCodeAt(0) - 64) * j;
            }
            return n;
        }
        var Convert26 = function (num) {
            var str = "";
            while (num > 0) {
                var m = num % 26;
                if (m == 0) {
                    m = 26;
                }
                str = String.fromCharCode(m + 64) + str;
                num = (num - m) / 26;
            }
            return str;
        }
    
        alert(Convert26(28));
        alert(Convert26(702));
        alert(Convert26(704));
        alert(Convert26(999999));
    
        alert(ConvertNum('ABBBBBZ'))
        alert(Convert26(333629062))
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?