Apache poi Excel:根据列的整数索引创建公式

Stu*_*Cat 5 java excel apache-poi

假设我的列号为26,当我创建一个公式时,我的公式应该是这样的,例如:SUM(AA1:AA3).但是如何将26翻译成AA?或者说27到AB?Apache POI有没有办法将Column索引用作整数并将其转换为字母表示形式?

Gag*_*arr 8

您将要使用Apache POI中的CellReference.这提供了转换所需的方法

对于您的特定情况,您需要convertNumToColString(int)):

接受基于0的base-10列并返回ALPHA-26表示.


Erw*_*idt 7

这需要一些代码:

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();
}
Run Code Online (Sandbox Code Playgroud)

还有一些东西要测试它:

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));
}
Run Code Online (Sandbox Code Playgroud)

输出:

Z
AA
BA
AAA
Run Code Online (Sandbox Code Playgroud)