java - 获取单元格apache poi的名称

标签 java excel apache-poi

我有一个 Cell 对象,如何获取该单元格的名称?

想要一个功能,例如:

String name = myCell.getName();

在 Excel 中,我在名称框中为其命名,所以我不想得到“B4”,我想得到诸如“InterestRate”之类的名称。

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

最佳答案

要找到被定义为与一个单元格完全匹配的命名范围,您需要这样的东西:

// 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();
      }
   }
}

请注意,这将返回适用于单元格的第一个命名范围,如果有多个命名范围并且您想要它们,您需要调整该代码以继续并返回一个列表

关于java - 获取单元格apache poi的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26649598/

相关文章:

java - Java 6 中的椭圆曲线密码术

vba - 查找不返回感兴趣的范围

vba - 如何使用 Excel VBA 获取 Windows 应用程序进程主窗口标题和窗口状态属性?

java - 获取 "IllegalArguementException : Value for parameter ' id' 超出了 poi apache 库的范围?

java - 使用 api XSSF 时出现 NoClassDefFoundError

java - 将java流切换为密码流

java - Spring Batch 通用作业设计

java - 使用 groovy-all jar 运行 Groovy 脚本时,如何指定类路径?

C# VSTO Excel 2007 - 禁用隐藏/取消隐藏按钮

java - 使用 Apache POI 删除特定 Excel 工作表上的所有边框