2012-12-27 22 views
7

如何使用java ..从.xlsm文件中获取特定单元格的值。 我想通过指定特定的行和列来获取单元格值,例如我需要第1行和第C1列或第5行和第C6列的单元格值......我通过指定像这样的行和列号来获取值如何使用JAVA在Excel表格中的指定位置获取单元格的值

XSSFRow row = sheet.getRow(4); // 4是行数

cell = row.getCell(4); // 4是列号

但这仅工作如果片材具有从A,B,C,d起始列...等等...当我尝试使用相同的编码来获取另一张纸,但它不起作用...在此表中,列从C,D,E开始......

任何人都可以帮助我了解我可以使用therr来获得指定的结果吗?

+0

如果我理解正确的单元格,你的表都有它的第一列(A和B)隐藏。他们在那里,但只有隐藏。 A仍然在索引0,B在索引1,C在索引2等等。 –

回答

0

如果该表具有名称,您可以获取表名并使用迭代器。

Iterator iterator = workSheet.rowIterator(); 
    while(iterator.next){ 
     Row row = (Row) iterator.next(); 
     //u can iterate and use row.getCell(i) 
    } 
10

您可能想使用CellReference实用程序类来帮助您。

然后,您可以这样做:

Sheet sheet = workbook.getSheet("MyInterestingSheet"); 

CellReference ref = new CellReference("B12"); 
Row r = sheet.getRow(ref.getRow()); 
if (r != null) { 
    Cell c = r.getCell(ref.getCol()); 
} 

,可以让你找到一个给定的Excel样式的引用

+0

太棒了,很高兴它做到了!请在有一分钟的时间内将答案标记为已接受(单击问题旁边的勾号),以便将来其他人知道它的工作 – Gagravarr

+0

@Gagravarr如何读取跨越多列(如B3:G3)的值? – EMM

+0

@EMM在合并的单元格中?如果是这样,只要读取左上角的单元格以获取数值即可。 – Gagravarr

相关问题