Excel形式の列名に変換

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です