在 xlsx4j 中追踪先例和从属
Contents
[
Hide
]
Aspose.Cells - 追踪先例和家属
复杂的财务工作表,尤其是合作开发的财务工作表,可能会隐藏最令人尴尬的错误。当公式使用引用单元格和依赖单元格时,检查公式的准确性和查找错误来源可能很困难。
- 判例单元格是由另一个 Cell 中的公式引用的单元格。例如,如果单元格 D10 包含公式 =B5,则单元格 B5 是单元格 D10 的先例。
- 依赖细胞包含引用其他单元格的公式。例如,如果单元格 D10 包含公式 =B5,则单元格 D10 是单元格 B5 的从属单元格。
为了使电子表格易于阅读,您可能希望清楚地显示电子表格中的哪些单元格用于公式。同样,您可能想要提取其他单元格的依赖单元格。
Aspose.Cells 允许您跟踪单元格并找出链接的单元格。
追溯先例
Java
//Instantiating a Workbook object
Workbook workbook = new Workbook(dataDir + "workbook.xls");
Cells cells = workbook.getWorksheets().get(0).getCells();
Cell cell = cells.get("A12");
//Tracing precedents of the cell A12.
//The return array contains ranges and cells.
ReferredAreaCollection ret = cell.getPrecedents();
//Printing all the precedent cells' name.
if(ret != null)
{
for(int m = 0 ; m < ret.getCount(); m++)
{
ReferredArea area = ret.get(m);
StringBuilder stringBuilder = new StringBuilder();
if (area.isExternalLink())
{
stringBuilder.append("[");
stringBuilder.append(area.getExternalFileName());
stringBuilder.append("]");
}
stringBuilder.append(area.getSheetName());
stringBuilder.append("!");
stringBuilder.append(CellsHelper.cellIndexToName(area.getStartRow(), area.getStartColumn()));
if (area.isArea())
{
stringBuilder.append(":");
stringBuilder.append(CellsHelper.cellIndexToName(area.getEndRow(), area.getEndColumn()));
}
System.out.println("Tracing Precedents: " + stringBuilder.toString());
}
}
追踪家属
Java
//获取A1单元格
Cell c = cells.get("A5");
//获取A5单元格的所有Dependents
Cell[]dependents = c.getDependents(true);
对于 (int i = 0; i< dependents.length; i++)
{
System.out.println("Tracing Dependents: " + dependents[i].getWorksheet().getName() +dependents[i].getName() + ":" + dependents[i].getIntValue());
}
下载运行代码
下载示例代码
欲了解更多详情,请访问追踪先例和家属.