2014-10-30 152 views
1

我有一个单元对象,我怎样才能得到那个单元格的名称?获取单元格的名称apache poi

想的功能,如:

String name = myCell.getName(); 

在Excel我已经在名称框中命名的,所以我不想让“B4”,我想获得的名称,如“利率”。

找不到这样的方法,我可以通过其他方式实现吗?

+0

你的意思是你想要获取单元格所属的命名范围,如果有的话?或者是其他东西? – Gagravarr 2014-10-30 16:47:48

+0

@Gagravarr是的,确切地说,如果命名范围与命名单元格相同(命名范围包含一个元素?) – 2014-10-31 09:06:36

回答

3

要找到它被定义为一个单元完全匹配的命名范围,你想要的东西,如:

// Get the cell we want to find - A1 for this case 
Workbook wb = WorkbookFactory.create("input.xlsx"); 
int sheetIndex = 0; 
Sheet s = wb.getSheetAt(sheetIndex); 
Cell wanted = s.getRow(0).getCell(0); 
String wantedRef = (new CellReference(wanted)).formatAsString(); 

// Check all the named range 
for (int nn=0; nn<wb.getNumberOfNames(); nn++) { 
    Name n = wb.getNameAt(nn); 
    if (n.getSheetIndex() == -1 || n.getSheetIndex() == sheetIndex) { 
     if (n.getRefersToFormula().equals(wantedRef)) { 
     // Found it! 
     return name.getNameName(); 
     } 
    } 
} 

注意,这将返回适用于细胞中的第一个命名的范围,如果有更多的比一个,你想要他们所有,你需要调整该代码继续并返回一个列表

相关问题