Aspose.Cells 中的追溯先例和家属

追踪先例和从属 Cells: Microsoft Excel

配方可能会根据客户所做的修改而改变。例如,如果单元格 C1 依赖于包含公式的 C3 和 C4,并且更改了 C1(因此公式被覆盖),则需要更改 C3 和 C4 或其他单元格以根据业务规则平衡电子表格。

同样,假设 C1 包含公式“=(B122)/(平方米N32)”。我想找到 C1 所依赖的单元格,即前面的单元格 B1、M2 和 N32。

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

Microsoft Excel 允许用户追踪先例和相关信息。

  1. 查看工具栏, 选择配方审核. 显示公式审核对话框。 公式审核对话框

待办事项:图片_替代_文本

  1. 追溯先例:
  2. 选择包含要为其查找引用单元格的公式的单元格。
  3. 要向直接向活动单元格提供数据的每个单元格显示示踪箭头,请单击追溯先例配方审核工具栏。
  4. 引用特定单元格(依赖项)的跟踪公式
  5. 选择要为其标识依赖单元格的单元格。
  6. 要向依赖于活动单元格的每个单元格显示示踪箭头,请单击公式审核工具栏上的跟踪依赖项。

追溯先例和从属 Cells: Aspose.Cells

追溯先例

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

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

输入电子表格

待办事项:图片_替代_文本

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和C2单元格分别有公式:“=A1+20”和“=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));

}

下载运行代码

下载示例代码