الدوائر والتبعيات

مقدمة

  • خلايا السابقة هي الخلايا التي يتم الإشارة إليها بواسطة صيغة في خلية أخرى. على سبيل المثال، إذا كانت الخلية D10 تحتوي على الصيغة =B5، فإن الخلية B5 هي سابقة للخلية D10.
  • ** الخلايا التابعة** تحتوي الخلايا على صيغ تشير إلى خلايا أخرى. على سبيل المثال ، إذا احتوت الخلية D10 على الصيغة = B5 ، فإن الخلية D10 هي تابعة للخلية B5.

لجعل ورق العمل سهل القراءة، قد ترغب في إظهار بشكل واضح الخلايا المستخدمة في صيغة. بالمثل، قد ترغب في استخراج الخلايا المعولة لخلايا أخرى.

تتيح Aspose.Cells لك تتبع الخلايا ومعرفة الخلايا المرتبطة.

تتبع خلايا السابقة والتابعة: مايكروسوفت إكسل

قد تتغير الصيغ استنادًا إلى التعديلات التي قام بها العميل. على سبيل المثال ، إذا كانت الخلية C1 معتمدة على C3 و C4 التي تحتوي على صيغة ، وتم تغيير C1 (بحيث يتم تجاوز الصيغة) ، فيجب تغيير C3 و C4 ، أو غيرها من الخلايا ، لتوازن الجدول الخماسي استنادًا إلى قواعد الأعمال.

بالمثل ، فلنفترض أن C1 تحتوي على الصيغة “=(B122)/(M2N32)”. أريد أن أجد الخلايا التي يعتمد C1 عليها ، أي الخلايا السابقة B1 و M2 و N32.

قد تحتاج إلى تتبع التبعية لخلية معينة إلى خلايا أخرى. إذا تم تضمين قواعد الأعمال في الصيغ ، نود معرفة التبعيات وتنفيذ بعض القواعد استنادًا إليها. بالمثل ، إذا تم تعديل قيمة خلية معينة ، فأي الخلايا في ورقة العمل يتأثر بتلك التغيير؟

تسمح مايكروسوفت إكسل للمستخدمين بتتبع الخلايا السابقة والتابعة.

  1. على شريط العرض, حدد تدقيق الصيغ
  2. تتبع السابقين:
    1. حدد الخلية التي تحتوي الصيغة التي تريد العثور على الخلايا السابقة لها.
    2. لعرض السهم التتبع إلى كل خلية توفر بيانات مباشرة للخلية النشطة، انقر على تتبع السابقين على شريط أدوات تدقيق الصيغ.
  3. تتبع الصيغ التي تشير إلى خلية معينة (التوابع)
    1. حدد الخلية التي تريد تحديد الخلايا التابعة لها.
    2. لعرض السهم التتبع إلى كل خلية تعتمد على الخلية النشطة، انقر على تتبع التوابع على شريط أدوات تدقيق الصيغ.

تتبع خلايا السابقة والتابعة: Aspose.Cells

تتبع السابقين

يسهل Aspose.Cells الحصول على الخلايا المسبقة. يمكن لها ألا تسترد الخلايا التي تقدم البيانات للسلف المبسط فحسب بل تجد أيضًا الخلايا التي تقدم البيانات للسلف المعقد مع النطاقات المسماة.

Aspose::Cells::Startup();
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
//Path of input
U16String dirPath(u"");
//Path of output
U16String outPath(u"");
//Path of input excel file
U16String samplePrecedentsAndDependents = dirPath + u"samplePrecedentsAndDependents.xlsx";
//Load source Excel file
Workbook workbook(samplePrecedentsAndDependents);
//Calculate workbook formula
workbook.CalculateFormula();
//Access first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
//Access cell F6
Cell cell = worksheet.GetCells().Get(u"F6");
//Get precedents of the cells and print them on console
std::cout << "Printing Precedents of Cell: ";
std::cout << cell.GetName().ToUtf8() << std::endl;
std::cout << u"-------------------------------" << std::endl;
ReferredAreaCollection refac = cell.GetPrecedents();
int count = refac.GetCount();
for (int i = 0; i < count; i++)
{
ReferredArea refa = refac.Get(i);
int row = refa.GetStartRow();
int col = refa.GetStartColumn();
cell = worksheet.GetCells().GetCell(row, col);
std::cout<<cell.GetName().ToUtf8() << std::endl;
}
Aspose::Cells::Cleanup();

تتبع المعتمدين

يتيح Aspose.Cells لك الحصول على الخلايا المعتمدة في جداول البيانات. يمكن لـ Aspose.Cells ليس فقط استرداد الخلايا التي توفر البيانات المتعلقة بصيغة بسيطة ولكن أيضًا العثور على الخلايا التي توفر البيانات للمعتمدين على الصيغة المعقدة بالتسميات.

Aspose::Cells::Startup();
//For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
//Path of input
U16String dirPath(u"");
//Path of output
U16String outPath(u"");
//Path of input excel file
U16String samplePrecedentsAndDependents = dirPath + u"samplePrecedentsAndDependents.xlsx";
//Load source Excel file
Workbook workbook(samplePrecedentsAndDependents);
//Calculate workbook formula
workbook.CalculateFormula();
//Access first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
//Access cell F6
Cell cell = worksheet.GetCells().Get(u"F6");
//Get dependents of the cells and print them on console
std::cout << "Printing Dependents of Cell: ";
std::cout << cell.GetName().ToUtf8() << std::endl;
std::cout << "-------------------------------" << std::endl;
//Parameter false means we do not want to search other sheets
Vector<Cell> depCells = cell.GetDependents(false);
//Get the length of the array
int len = depCells.GetLength();
//Print the names of all the cells inside the array
for (int i = 0; i < len; i++)
{
Cell dCell = depCells[i];
std::cout << dCell.GetName().ToUtf8() << std::endl;
}
Aspose::Cells::Cleanup();