使用poi操作excel经常需要插入公式,如SUM(A1:C8) 实际开发过程中通常需要将数字列转成字母列
起初以为只是个进制转换问题,不以为然,走了不少弯路
附上代码:
/**
* 生成EXCEL列标 0->A,25->Z,26->AA
*
* @param num
* @return
*/
public static String to26(int num) {
int buf[] = new int[8];
int _num = num, pos = 7;
do {
buf[pos--] = num % 26 + 65;
num = num / 26;
} while (num != 0);
if (_num > 25) {
buf[pos + 1] = buf[pos + 1] - 1;// 问题就在这里..
}
return new String(buf, pos + 1, (7 - pos));
}