2014-10-30 191 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(); 
     } 
    } 
} 

注意,這將返回適用於細胞中的第一個命名的範圍,如果有更多的比一個,你想要他們所有,你需要調整該代碼繼續並返回一個列表

相關問題