Отслеживание прецедентов и иждивенцев в Aspose.Cells

Отслеживание предшествующего и зависимого Cells: Microsoft Excel

Формулы могут меняться в зависимости от изменений, внесенных клиентом. Например, если ячейка C1 зависит от C3 и C4, содержащих формулу, а C1 изменена (таким образом, формула переопределена), C3 и C4 или другие ячейки необходимо изменить, чтобы сбалансировать электронную таблицу на основе бизнес-правил.

Точно так же предположим, что C1 содержит формулу “=(B122)/(М2N32)». Я хочу найти ячейки, от которых зависит C1, то есть предшествующие ячейки B1, M2 и N32.

Возможно, вам потребуется проследить зависимость конкретной ячейки от других ячеек. Если бизнес-правила встроены в формулы, мы хотели бы узнать зависимость и выполнить некоторые правила на ее основе. Точно так же, если значение конкретной ячейки изменено, на какие ячейки рабочего листа повлияет это изменение?

Microsoft Excel позволяет пользователям отслеживать прецеденты и иждивенцев.

  1. НаПанель инструментов просмотра , ВыбратьАудит формул. Отображается диалоговое окно «Аудит формул». Диалоговое окно аудита формул

дело:изображение_альтернативный_текст

  1. Проследить прецеденты:
  2. Выберите ячейку, содержащую формулу, для которой вы хотите найти предшествующие ячейки.
  3. Чтобы отобразить трассировочную стрелку для каждой ячейки, которая непосредственно предоставляет данные для активной ячейки, щелкнитеОтследить прецеденты наАудит формул панель инструментов.
  4. Формулы трассировки, которые ссылаются на определенную ячейку (зависимые)
  5. Выберите ячейку, для которой вы хотите определить зависимые ячейки.
  6. Чтобы отобразить стрелку трассировки для каждой ячейки, зависящей от активной ячейки, щелкните Отслеживать зависимые элементы на панели инструментов Аудит формул.

Отслеживание прецедента и зависимого Cells: Aspose.Cells

Отслеживание прецедентов

Aspose.Cells позволяет легко получить прецедентные ячейки. Он может не только извлекать ячейки, которые предоставляют данные для простых прецедентов формулы, но также находить ячейки, которые предоставляют данные для сложных прецедентов формулы с именованными диапазонами.

В приведенном ниже примере используется файл шаблона Excel Book1.xls. Электронная таблица содержит данные и формулы на первом рабочем листе.

Входная электронная таблица

дело:изображение_альтернативный_текст

Aspose.Cells предоставляет метод GetPrecedents класса Cell, используемый для отслеживания прецедентов ячейки. Он возвращает ReferredAreaCollection. Как видно выше, в Book1.xls ячейка B7 содержит формулу «=СУММ(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 предоставляет метод GetDependents класса Cell, используемый для отслеживания зависимостей ячейки. Например, в Book1.xlsx есть формулы: “=A1+20” и “=A1+30” в ячейках B2 и C2 соответственно. В следующем примере показано, как отслеживать иждивенцев для ячейки A1 с помощью файла шаблона Book1.xlsx.

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));

}

Скачать рабочий код

Скачать пример кода