この前、エクセル列名から、位置をもとめたのでその逆をやってみます。 その2
2014/02/01
■
java
エクセル
この前、エクセル列名から、位置をもとめたのでその逆をやってみます。 その2です。
前回は、再帰使ったので、今回はそうでないやり方で。
このやり方、挑戦して、すぐできなかったので、あきらめたのだけど。
26進数ということだと思うのだが。
メソッドはこんな感じ。
0〜の数値をエクセルの列の英字に変換します。
public static String rpos(final int p) {
final StringBuilder builder = new StringBuilder();
final int n = 26;// n進数
int[] a = { p, 0 };
do {
a = new int[] { a[0] / n, a[0] % n };
builder.insert(0, (char) ('A' + a[1]));
a[0] -= 1;
} while (0 <= a[0]);
return builder.toString();
}
: