2015-09-14 26 views
-5

在excel行中,数字从'1'开始并继续,列号(id)从A开始并继续,如A,B,.. Z,AA,AB。 ..AZ,... ABX,... 现在,如果我们将输入作为'A'输出应该是1, ,我们将输入作为'Z'输出传递给26,如果我们通过任何输入像AX,BCS)Java应该返回相应的列号。 有人能帮助我得到Java中的算法吗?如何通过在Java中传递列名来获得列号

回答

0

看看CellReference POI CellReference的API。 convertColStringToIndex()应该返回基于零的索引。

0

你可以简单地践踏作为具有26基于此基础上的数值系统,你可以简单地使用数学的正确方法10系统这样确定在基地的新值:

public class Test 
{ 
    private static final int sub = 64; 
    private static final int base = 26; 

    public static void main(String[] args) 
    { 
     System.out.println(getNumber("AD")); 
    } 

    private static int getNumber(String input) { 
     int sum = 0; 
     for(int i = 0;i<input.length();++i) { 
      int representation = input.charAt(i); 
      representation -= Test.sub; 
      int value = (int) (representation * Math.pow(Test.base, input.length()-i-1)); 
      sum += value; 
     } 
     return sum; 
    } 
} 
相关问题