A-Z AA-AZ BA-BZ ... AAA無限循環

最近在做一個純前端導入excel(.xlsx)並展示、操作、導出,發現列頭字母循環問題,一開始以爲是26進製做法,但如果是26進制,那麼Z後面應該是BA,就好像10進制,9後面是10而不是00,所以糾結之餘用回調解決了這個問題:
const letters = [
    'A', 'B', 'C', 'D', 'E', 'F', 'G',
    'H', 'I', 'J', 'K', 'L', 'M', 'N',
    'O', 'P', 'Q', 'R', 'S', 'T',
    'U', 'V', 'W', 'X', 'Y', 'Z'
];

const transformNumToLetter = function (num) {
    let letter = "";
    let loopNum = parseInt(num / 26);
    if(loopNum>0){
        letter += transformNumToLetter(loopNum-1);
    }
    letter += letters[num%26];
    return letter;
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章