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