读取excel判断“AA”列是第几列(26)?读不懂,大神给备注下,尽量详细些

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

private static int getNumberIndex(String s)
{
// Find the position of the first number
boolean numberFound = false;
int pos = s.lastIndexOf(sheetInd) + 1;
char c = '\0';

while (!numberFound && pos < s.length() )
{
c = s.charAt(pos);

if (c >= '0' && c <= '9')
{
numberFound = true;
}
else
{
pos++;
}
}

return pos;
}

private static final char sheetInd = '!';
private static final char fixedInd='$';
public static int getColumn(String s)
{

int colnum = 0;
int numindex = getNumberIndex(s);

String s2 = s.toUpperCase();

int startPos = s.lastIndexOf(sheetInd) + 1;
if (s.charAt(startPos) == fixedInd)
{
startPos++;
}

int endPos = numindex;
if (s.charAt(numindex - 1) == fixedInd)
{
endPos--;
}

for (int i = startPos; i < endPos ; i++)
{

if (i != startPos)
{
colnum = (colnum+1) * 26;
}
colnum += (int) s2.charAt(i) - (int) 'A';
}

return colnum;
}

第1个回答  2015-05-19
不需这么复杂,只需输入公式:
=COLUMN(AA1)
其中AA 代表列号;1 代表行号(可以是任意行)。本回答被网友采纳
相似回答