列のインデックスをExcelの列名(AからZでAAに続くやつ)に変換する処理。時々使うのでメモかねて。
colIndexの0がA。
private static final Character[] COL_STRING = { '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' };
public static String toExcelCol(int colIndex) {
StringBuilder sb = new StringBuilder();
while (true) {
int div = colIndex / 26;
int mod = colIndex % 26;
sb.insert(0, COL_STRING[mod]);
if (div == 0)
break;
colIndex = div - 1;
}
return sb.toString();
}
colIndexマイナスのチェックなかったりとかとかは適宜修正で。