エクセルの最大列数をもとめる 2013/12/14

javaです。
excelは列をアルファベットで表現しています。
Aなら1とかZなら26とかです。

POIではcolの位置を、0スタートの数値であらわすので、プログラムにおとすとき僕は混乱してしまいます。

この辺の感覚が違う人は、こういったことを気にしないし、苦にもしないようですが、僕の場合、デザインのときの位置決めと、コード上での指定を一致させたいです。

というわけで、POI を使う場合は、いつもユーティリティーメソッドのposメソッドを用意したりします。

ちなみにエクセルのバージョンによって、16384まで列が使えるようです。

以下コード
poiの操作で使う場合は、-1して使います。

public class Test26shinsuu { public static void main(String[] args) { System.out.println(pos("A")); System.out.println(pos("B")); System.out.println(pos("Z")); System.out.println(pos("AA")); // Excel 2003の最大列数 256 System.out.println(pos("IV")); // Excel 2007以降の最大列数 16384 System.out.println(pos("XFD")); } static int pos(String s){ String s1 = s.toUpperCase(); char[] cs = s1.toCharArray(); int p = 0; for(int i=0;i<cs.length;i++){ int c = (int)cs[i] - 64; p += Math.pow(26, cs.length - (i + 1)) * c; } return p; } }





エクセル2007の最大列数は2の14乗=16384らしいのですが、列記号XFD=... - Yahoo!知恵袋

: