列のインデックスを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マイナスのチェックなかったりとかとかは適宜修正で。