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