إنشاء الوصول ونسخ نطاقات الأسماء

مقدمة

عادةً، يتم استخدام تسميات العمود والصف للإشارة إلى الخلايا الفردية. يُمكن إنشاء أسماء وصفية لتمثيل الخلايا، ونطاقات الخلايا، والصيغ، أو القيم الثابتة. يمكن أن يشير مصطلح الاسم إلى سلسلة من الأحرف التي تمثل خليةً، أو نطاقًا من الخلايا، أو صيغةً، أو قيمة ثابتة. إذا كانت لديك نطاقًا من الخلايا يمكن الإشارة إليه بواسطة اسمه. استخدم أسماء سهلة الفهم، مثل المنتجات، للإشارة إلى نطاقات صعبة الفهم، مثل المبيعات!C20:C30. يمكن استخدام التسميات في الصيغ التي تشير إلى بيانات في نفس ورقة العمل؛ إذا كنت ترغب في تمثيل نطاق على ورقة عمل أخرى، فيمكنك استخدام اسمًا. *النطاقات المسماة تعد من بين أقوى ميزات Microsoft Excel، خاصةً عند استخدامها كنطاق مصدر لعناصر التحكم في القوائم، الجداول المحورية، الرسوم البيانية، وما إلى ذلك.

العمل مع النطاق المسمى باستخدام Microsoft Excel

إنشاء نطاقات مسماة

توضح الخطوات التالية كيفية تسمية خلية أو نطاق خلايا باستخدام MS Excel. ينطبق هذا الأسلوب على Microsoft Office Excel 2003، Microsoft Excel 97، 2000، و 2002.

  1. حدد الخلية أو نطاق الخلايا الذي تريد تسميته.
  2. انقر على مربع الاسم في الطرف الأيسر من شريط الصيغة.
  3. اكتب اسم الخلايا.
  4. اضغط على ENTER.

العمل مع النطاقات المسماة باستخدام Aspose.Cells for Python Excel Library

هنا، نستخدم واجهة برمجة تطبيقات Aspose.Cells for Python via .NET لأداء المهمة. Aspose.Cells for Python via .NET يوفر فئة، Workbook التي تمثل ملف Excel من مايكروسوفت. تحتوي الفئة Workbook على مجموعة worksheets التي تسمح بالوصول إلى كل ورقة عمل في ملف Excel. ورقة عمل ممثلة بواسطة فئة Worksheet. الفئة Worksheet توفر مجموعة cells

إنشاء نطاق مسمى

من الممكن إنشاء نطاق مسمى عن طريق استدعاء create_range الزائدة من مجموعة Cells. إصدار نموذجي لـ create_range يأخذ المعلمات التالية:

  • اسم الخلية العلوية اليسرى، اسم الخلية العلوية اليسرى في النطاق.
  • اسم الخلية السفلي الأيمن، اسم الخلية السفلي الأيمن في النطاق.

عند استدعاء create_range، فإنه يُرجع نطاق المصنوع حديثًا كنموذج من فئة Range. استخدم هذا Range لتكوين النطاق المسمى. على سبيل المثال، قم بتعيين اسم النطاق باستخدام خاصية name. يوضح المثال التالي كيفية إنشاء نطاق مسمّى للخلايا التي تمتد عبر B4:G14.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Opening the Excel file through the file stream
workbook = Workbook(dataDir + "book1.xls")
# Accessing the first worksheet in the Excel file
worksheet = workbook.worksheets[0]
# Creating a named range
range = worksheet.cells.create_range("B4", "G14")
# Setting the name of the named range
range.name = "TestRange"
# Saving the modified Excel file
workbook.save(dataDir + "output.out.xls")

إدخال البيانات في الخلايا في النطاق المسمى

يمكنك إدخال البيانات في الخلايا الفردية لنطاق وفق النمط

  • C#: Range[row,column]
  • VB: Range(row,column)

على سبيل المثال، لديك مجموعة مسماة من الخلايا التي تمتد بين A1:C4. تجعل المصفوفة 4 * 3 = 12 خلية. تتم ترتيب الخلايا الفردية في النطاق بشكل تسلسلي: Range[0,0], Range[0,1], Range[0,2], Range[1,0], Range[1,1], Range[1,2], Range[2,0], Range[2,1], Range[2,2], Range[3,0], Range[3,1], Range[3,2].

استخدم الخصائص التالية لتحديد الخلايا في المدى:

  • FirstRow يعيد فهرس الصف الأول في المدى المسمى.
  • FirstColumn يعيد فهرس العمود الأول في المدى المسمى.
  • RowCount يعيد العدد الكلي للصفوف في المدى المسمى.
  • ColumnCount يعيد العدد الكلي للأعمدة في المدى المسمى.

يظهر المثال التالي كيفية إدخال بعض القيم في الخلايا لنطاق معين.

from aspose.cells import Workbook
from os import os, path
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create directory if it is not already present.
IsExists = path.isdir(dataDir)
if notIsExists:
os.makedirs(dataDir)
# Instantiate a new Workbook.
workbook = Workbook()
# Get the first worksheet in the workbook.
worksheet1 = workbook.worksheets[0]
cells = worksheet1.cells
# Create a range of cells based on H1:J4.
range = cells.create_range("H1", "J4")
# Name the range.
range.name = "MyRange"
startRow = range.first_row
startCol = range.first_column
# Input some data into cells in the range.
cells.get(startRow, startCol).put_value("USA")
cells.get(startRow, startCol + 1).put_value("SA")
cells.get(startRow, startCol + 2).put_value("Israel")
cells.get(startRow + 1, startCol).put_value("UK")
cells.get(startRow + 1, startCol + 1).put_value("AUS")
cells.get(startRow + 1, startCol + 2).put_value("Canada")
cells.get(startRow + 2, startCol).put_value("France")
cells.get(startRow + 2, startCol + 1).put_value("India")
cells.get(startRow + 2, startCol + 2).put_value("Egypt")
cells.get(startRow + 3, startCol).put_value("China")
cells.get(startRow + 3, startCol + 1).put_value("Philipine")
cells.get(startRow + 3, startCol + 2).put_value("Brazil")
# Save the excel file.
workbook.save(dataDir + "rangecells.out.xls")

تحديد الخلايا في النطاق المسمى

يمكنك إدراج البيانات في الخلايا الفردية في المجموعة وفق النمط التالي:

  • C#: Range[row,column]
  • VB: Range(row,column)

إذا كان لديك مدى يحمل اسم يمتد من A1:C4. المصفوفة تجعل 4 * 3 = 12 خلية. ترتب الخلايا في المدى الفردي بشكل متسلسل: Range[0,0], Range[0,1], Range[0,2], Range[1,0] ,Range[1,1], Range[1,2], Range[2,0], Range[2,1], Range[2,2], Range[3,0], Range[3,1], Range[3,2].

استخدم الخصائص التالية لتحديد الخلايا في المدى:

  • FirstRow يعيد فهرس الصف الأول في المدى المسمى.
  • FirstColumn يعيد فهرس العمود الأول في المدى المسمى.
  • RowCount يعيد العدد الكلي للصفوف في المدى المسمى.
  • ColumnCount يعيد العدد الكلي للأعمدة في المدى المسمى.

يظهر المثال التالي كيفية إدخال بعض القيم في الخلايا لنطاق معين.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Instantiate a new Workbook.
workbook = Workbook(dataDir + "book1.xls")
# Getting the specified named range
range = workbook.worksheets.get_range_by_name("TestRange")
# Identify range cells.
print("First Row : " + str(range.first_row))
print("First Column : " + str(range.first_column))
print("Row Count : " + str(range.row_count))
print("Column Count : " + str(range.column_count))

الوصول إلى المدى المسمى

الوصول إلى نطاق مسمى محدد

استدعاء get_range_by_name الكائن Worksheet الميثود للحصول على مدى بالاسم المحدد. تأخذ الميثود النموذجية get_range_by_name الاسم للمدى المسمى وتعيد المدى المحدد كمثيل لفئة Range. يوضح المثال التالي كيفية الوصول إلى مدى محدد بالاسم.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Opening the Excel file through the file stream
workbook = Workbook(dataDir + "book1.xls")
# Getting the specified named range
range = workbook.worksheets.get_range_by_name("TestRange")
if range != None:
print("Named Range : " + range.refers_to)

الوصول إلى كافة المدى المسمى في ورقة العمل

استدعاء get_named_ranges الكائن Worksheet الميثود للحصول على كافة المدى المسمى في ورقة العمل. تعيد الميثود get_named_ranges مصفوفة تحتوي على كل المدى المسمى في Worksheet المجموعة.

يوضح المثال التالي كيفية الوصول إلى جميع النطاقات المسماة في ورق عمل.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Opening the Excel file through the file stream
workbook = Workbook(dataDir + "book1.xls")
# Getting all named ranges
range = workbook.worksheets.get_named_ranges()
if range != None:
print("Total Number of Named Ranges: " + str(len(range)))

نسخ المدى المسمى

توفر Aspose.Cells for Python via .NET طريقة Range.copy() لنسخ مجموعة من الخلايا مع التنسيق إلى نطاق آخر.

المثال التالي يوضح كيفية نسخ مدى مصدر من الخلايا إلى مدى مسمى آخر.

from aspose.cells import BorderType, CellBorderType, Workbook
from aspose.pydrawing import Color
from os import os, path
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create directory if it is not already present.
IsExists = path.isdir(dataDir)
if notIsExists:
os.makedirs(dataDir)
# Instantiate a new Workbook.
workbook = Workbook()
# Get all the worksheets in the book.
worksheets = workbook.worksheets
# Get the first worksheet in the worksheets collection.
worksheet = workbook.worksheets[0]
cells = worksheet.cells
# Create a range of cells.
range1 = cells.create_range("E12", "I12")
# Name the range.
range1.name = "MyRange"
# Set the outline border to the range.
range1.set_outline_border(BorderType.TOP_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128))
range1.set_outline_border(BorderType.BOTTOM_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128))
range1.set_outline_border(BorderType.LEFT_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128))
range1.set_outline_border(BorderType.RIGHT_BORDER, CellBorderType.MEDIUM, Color.from_argb(0, 0, 128))
startRow = range1.first_row
startCol = range1.first_column
# Input some data with some formattings into
# A few cells in the range.
cells.get(startRow, startCol).put_value("Test")
cells.get(startRow, startCol + 4).put_value("123")
# Create another range of cells.
range2 = cells.create_range("B3", "F3")
# Name the range.
range2.name = "testrange"
# Copy the first range into second range.
range2.copy(range1)
# Save the excel file.
workbook.save(dataDir + "copyranges.out.xls")