Excel Num生成,十进制转26进制

package com.oracle.test;

import org.testng.annotations.Test;

public class ExcelNumTest {
    
    char [] chs = new char[26];

    public String getExcelNum(int num) {
        StringBuffer sb = new StringBuffer();
        while(num!=0) {
            int tmp = num %26;
            num/=26;
            //此处略微关键,当为0时,其实是26,也就是Z,
            //而且当你将0调整为26后,需要从数字中去除26代表的这个数
            if(tmp ==0) {
                tmp = 26;
                num-=1;
            }
            sb.append((char)('A'+tmp-1));
        }

        return sb.reverse().toString();
    }

    @Test
    void testExcelNum() {
        chs[0] = 'A';
        
        for(int i=1;i<26;i++) {
            chs[i] = (char)('A'+i);
        }
        System.out.println(getExcelNum(78));

    }
}

输出如下,


image.png

你可能感兴趣的:(Excel Num生成,十进制转26进制)