在Aspose.Cells中跟踪前代和所依赖的

跟踪先例和依赖单元格:Microsoft Excel

公式可能根据客户的修改而变化。例如,如果单元格C1依赖于包含公式的C3和C4,而C1已更改(因此覆盖了公式),则C3和C4或其他单元格需要根据业务规则进行调整以平衡电子表格。

类似地,假设C1包含公式"=(B122)/(M2N32)"。我想找到C1依赖的单元格,即前代单元格B1、M2和N32。

您可能需要跟踪特定单元格对其他单元格的依赖关系。如果业务规则嵌入在公式中,我们希望找出依赖关系并根据其执行一些规则。同样,如果特定单元格的值被修改,工作表中哪些单元格会受到该更改的影响?

Microsoft Excel 允许用户跟踪先例和依赖。

1.在查看工具栏上,选择公式审计。 显示【公式审计】对话框。 【公式审计对话框】

todo:image_alt_text

  1. 跟踪先例:
    1. 选择包含您想要查找先例单元格的公式的单元格。
    2. 要向每个直接提供数据给活动单元格的单元格显示跟踪箭头,请单击公式审计工具栏上的跟踪先例
  2. 跟踪引用特定单元格的公式(依赖项)
    1. 选择要识别其依赖单元格的单元格。
    2. 要向每个依赖于活动单元格的单元格显示跟踪箭头,请单击公式审计工具栏上的跟踪依赖

跟踪先例和依赖单元格:Aspose.Cells

跟踪先例

Aspose.Cells使得获取单元格的先行单元格变得轻松。它不仅可以检索提供数据给简单公式先行单元格的单元格,还可以找到提供给具有命名范围的复杂公式先行单元格的单元格。

在下面的示例中,使用了模板Excel文件《Book1.xls》。电子表格在第一个工作表上包含数据和公式。

【输入电子表格】

todo:image_alt_text

Aspose.Cells提供了Cell类的GetPrecedents方法,用于跟踪单元格的先行单元格。它返回一个ReferredAreaCollection。如上所示,在Book1.xls中,单元格B7包含公式"=SUM(A1:A3)"。因此,单元格A1:A3是单元格B7的先行单元格。以下示例演示了使用模板文件Book1.xls跟踪先行单元格的功能。

C#

 //Instantiating a Workbook object

Workbook workbook = new Workbook("book1.xls");

Cells cells = workbook.Worksheets[0].Cells;

Aspose.Cells.Cell cell = cells["B7"];

//Tracing precedents of the cell B7.

//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.Count; m++)

  {

    ReferredArea area = ret[m];

    StringBuilder stringBuilder = new StringBuilder();

    if (area.IsExternalLink)

    {

        stringBuilder.Append("[");

        stringBuilder.Append(area.ExternalFileName);

        stringBuilder.Append("]");

     }

     stringBuilder.Append(area.SheetName);

     stringBuilder.Append("!");

     stringBuilder.Append(CellsHelper.CellIndexToName(area.StartRow, area.StartColumn));

     if (area.IsArea)

      {

          stringBuilder.Append(":");

          stringBuilder.Append(CellsHelper.CellIndexToName(area.EndRow, area.EndColumn));

      }


      Console.WriteLine(stringBuilder.ToString());

   }

}

跟踪依赖项

Aspose.Cells可以让您在电子表格中获取依赖单元格。Aspose.Cells不仅可以检索提供简单公式数据的单元格,还可以找到提供具有命名范围的复杂公式依赖单元格的单元格。

Aspose.Cells提供了Cell类的GetDependents方法,用于跟踪单元格的依赖单元格。例如,在Book1.xlsx中,有公式:B2单元格中的"=A1+20"和C2单元格中的"=A1+30"。以下示例演示了如何使用模板文件Book1.xlsx跟踪A1单元格的依赖单元格。

C#

 string path = "Book1.xlsx";

Workbook workbook = new Workbook(path);

Worksheet worksheet = workbook.Worksheets[0];

var c = worksheet.Cells["A1"];

var dependents = c.GetDependents(true);

foreach (var dependent in dependents)

{

     Debug.WriteLine(string.Format("{0} ---- {1} : {2}", dependent.Worksheet.Name, dependent.Name, dependent.Value));

}

下载运行代码

下载示例代码