如何在java中识别2维数组相对于CSV单元的位置

时间:2012-11-18 11:24:12

标签: java excel csv

我想在java中获得2维数组的位置。

目的:我从CSV文件中获取此二维数组以进行验证。所以我想通过提及它的Cell位置来确定哪一个是无效的。

示例:

A B C D E

1 a b c d e

2 f g h i j

3 K L M N 2 O

4 点q的Kr小号

如果我用上面的输入给代码中的'h',它应该给我C2。这方面的API非常有用。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

Apache POI应该可以帮助您进行Excel操作

答案 1 :(得分:0)

使用以下方法可获得更好的效果。

private static String ConvertColumnNumberToChars( int i ){

if( i < 0 )
throw new UnsupportedOperationException("Converted number must be greater than zero.");

int iBase = 'Z' - 'A'+1;
if( iBase > Character.MAX_RADIX )
throw new UnsupportedOperationException("This JRE can't convert to radix greater than "+Character.MAX_RADIX);

String interConversion = Integer.toString(i-1, iBase).toUpperCase();

//System.out.print("inter: "+ interConversion +";  ");

char[] ac = interConversion.toCharArray();

for( int j = 0; j < ac.length; j++ ) {

int poziceOdzadu = ac.length - j - 1;
char c = ac[j];
ac[j] =  (char) ('A' - poziceOdzadu + Character.digit( c, iBase ));

}
return String.copyValueOf( ac );

}

您要做的就是为此方法输入一个想要更改为列名的int值。

字符串值的行号+ 1是CSV文件的行号,ConvertColumnNumberToChars(Number + 1)是列字符名称。

祝你好运!