1
我有一个单元对象,我怎样才能得到那个单元格的名称?获取单元格的名称apache poi
想的功能,如:
String name = myCell.getName();
在Excel我已经在名称框中命名的,所以我不想让“B4”,我想获得的名称,如“利率”。
找不到这样的方法,我可以通过其他方式实现吗?
我有一个单元对象,我怎样才能得到那个单元格的名称?获取单元格的名称apache poi
想的功能,如:
String name = myCell.getName();
在Excel我已经在名称框中命名的,所以我不想让“B4”,我想获得的名称,如“利率”。
找不到这样的方法,我可以通过其他方式实现吗?
要找到它被定义为一个单元完全匹配的命名范围,你想要的东西,如:
// 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();
}
}
}
注意,这将返回适用于细胞中的第一个命名的范围,如果有更多的比一个,你想要他们所有,你需要调整该代码继续并返回一个列表
你的意思是你想要获取单元格所属的命名范围,如果有的话?或者是其他东西? – Gagravarr 2014-10-30 16:47:48
@Gagravarr是的,确切地说,如果命名范围与命名单元格相同(命名范围包含一个元素?) – 2014-10-31 09:06:36