Apache poi Excel:根据列的整数索引创build公式
说我的列号是26,当我创build一个公式时,我的公式应该看起来像:SUM(AA1:AA3)。 但是我怎样把26翻译成AA呢? 或者说27到AB? 有没有办法为Apache POI使用列索引作为一个整数,并将其转换成它的字母表示?
这只需要一点点代码:
public static String columnName(int index) { StringBuilder s = new StringBuilder(); while (index >= 26) { s.insert(0, (char) ('A' + index % 26)); index = index / 26 - 1; } s.insert(0, (char) ('A' + index)); return s.toString(); }
还有一些东西来testing它:
public static void main(String[] args) { System.out.println(columnName(25)); System.out.println(columnName(26)); System.out.println(columnName(52)); System.out.println(columnName(27 * 26)); }
输出:
Z AA BA AAA
你会想从Apache POI中使用CellReference 。 这提供了您需要转换的方法
对于你的具体情况,你想要convertNumToColString(int)) :
进入一个基于0的base-10列并返回一个ALPHA-26表示。
Erwin Bolwidt有正确的想法。
在英语中它将是:
num / 26 - 1 = first_letter num % 26 = second_letter
举个例子:
27 / 26 - 1 = 0 => A 27 % 26 = 1 => B
从而:
27 = AB