دالة iter_cols - كتاب المهارات الرقمية - الصف 8 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب المهارات الرقمية - الصف 8 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 8 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: دالة iter_cols

📚 معلومات الصفحة

الكتاب: كتاب المهارات الرقمية - الصف 8 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 8 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 دالة iter_cols

المفاهيم الأساسية

دالة iter_cols: تُستخدم للحصول على جميع القيم لعمود أو أكثر في ورقة عمل إكسل.

خريطة المفاهيم

```markmap

استخدام بايثون مع إكسل

الهدف

أتمتة المهام المتكررة

إجراء العمليات الحسابية المعقدة بشكل أسرع

الأداة: مكتبة أوبن بيكسل (openpyxl)

وظائفها

  • قراءة بيانات إكسل
  • كتابة بيانات إكسل
  • إجراء الحسابات الرياضية
  • إنشاء الرسوم والمخططات البيانية

خطوات تثبيتها في PyCharm

  • فتح نافذة "Packages" (الحزم)
  • البحث عن "openpyxl"
  • اختيار المكتبة والضغط على "Install" (تثبيت)
  • انتظار رسالة اكتمال التثبيت

الخطوات الأولى بعد التثبيت

استيراد المكتبة

  • استخدام الأمر: `import openpyxl`

العمل مع دفاتر العمل

#### تحميل دفتر عمل موجود

  • استخدام دالة: `load_workbook()`
  • يجب وضع الملف في نفس مجلد الكود أو استخدام المسار المطلق
#### التعرف على أوراق العمل

  • استخدام السمة: `sheetnames` لمعرفة أسماء الأوراق

معرفة أبعاد الورقة

سمة الصف الأقصى (max_row attribute)

  • تُستخدم لمعرفة عدد الصفوف الموجودة في الورقة

سمة العمود الأقصى (max_column attribute)

  • تُستخدم لمعرفة عدد الأعمدة الموجودة في الورقة

الوصول إلى الخلايا

خصائص الخلية الرئيسية

  • موقعها في الملف
  • قيمتها

طرق الوصول

  • الوصول إلى خلية محددة (مثل `sheet_obj["A1"]`)
  • الوصول إلى نطاق من الخلايا (مثل `sheet_obj["B1":"B5"]`)

الوصول إلى قيم الخلايا

الوصول إلى قيمة خلية واحدة

  • تحديد موقع الخلية (مثال: "C3")
  • استدعاء سمة `.value` (مثال: `cell.value`)

الوصول إلى قيمة أكثر من خلية واحدة

  • استخدام الدالتان `iter_rows` و `iter_cols`
  • لتجنب البحث اليدوي الطويل والمعرض للخطأ

دالة iter_rows

الغرض

  • الحصول على جميع القيم لصف أو أكثر في ورقة عمل إكسل

الصيغة

  • iter\_rows (min\_row=None, max\_row=None, min\_col=None, max\_col=None)

المعاملات (Parameters)

  • `min_row`: فهرس الصف الأول في النطاق
  • `max_row`: فهرس الصف الأخير في النطاق
  • `min_col`: فهرس العمود الأول في النطاق
  • `max_col`: فهرس العمود الأخير في النطاق

ملاحظة

  • إذا لم تحدد الفهرس، يبدأ النطاق من الخلية الأولى "A1"

مثال تطبيقي

  • للحصول على جميع الحقائق الغذائية للحليب من الصف 3 والأعمدة من 3 إلى 11

دالة iter_cols

الغرض

  • الحصول على جميع القيم لعمود أو أكثر في ورقة عمل إكسل

الصيغة

  • iter\_cols (min\_col=None, max\_col=None, min\_row=None, max\_row=None)

المعاملات (Parameters)

  • `min_col`: فهرس العمود الأصغر (الأول)
  • `max_col`: فهرس العمود الأكبر (الأخير)
  • `min_row`: فهرس الصف الأصغر (الأول)
  • `max_row`: فهرس الصف الأكبر (الأخير)

ملاحظة

  • إذا لم تحدد الفهرس، يبدأ النطاق من الخلية الأولى "A1"

مثال تطبيقي

  • للحصول على عدد السعرات الحرارية (kCal) لجميع المكونات في ورقة العمل
  • استخراج البيانات من العمود 3، الصفوف من 3 إلى 12
```

نقاط مهمة

  • دالة `iter_cols` هي عكس `iter_rows`، فهي تتعامل مع الأعمدة بدلاً من الصفوف.
  • المعاملات في الدالة اختيارية، وإذا لم تحددها يبدأ البحث من الخلية A1.
  • لاستخدام الدالة، يجب أولاً تحميل ملف إكسل باستخدام `openpyxl.load_workbook()` وتحديد الورقة المطلوبة.
  • الناتج من الدالة يحتاج إلى استخدام حلقتين `for` متداخلتين للوصول إلى قيمة كل خلية وطباعتها.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

دالة iter_cols

نوع: محتوى تعليمي

دالة iter_cols

نوع: محتوى تعليمي

تُستخدم دالة iter_cols عندما تريد الحصول على جميع القيم لعمود أو أكثر في ورقة عمل إكسل.

نوع: محتوى تعليمي

iter_cols (min_col=None, max_col=None, min_row=None, max_row=None)

نوع: محتوى تعليمي

إذا لم تحدد الفهرس، فسيبدأ نطاق البحث من الخلية الأولى "A1".

نوع: محتوى تعليمي

ستستخدم iter_cols للحصول على عدد السعرات الحرارية (kCal) لجميع المكونات الموجودة في ورقة العمل. ستحتاج إلى الحصول على مواقع جميع الخلايا ثم استدعاء سمة القيمة.

Python Code Example

نوع: محتوى تعليمي

import openpyxl path = "nutrition.xlsx" wb = openpyxl.load_workbook(path) sheet_obj = wb['arabic'] # يحتوي على مواقع حقائق الطاقة لجميع المكونات sLoC أنشئ متغير cols = sheet_obj.iter_cols(min_col=3, max_col=3, min_row=3, max_row=12) # المتداخلة لطباعة قيمة كل خلية rof الآن استخدم حلقات print("السعرات الحرارية لجميع المكونات:", end=" ") for col in cols: for cell in col: print(cell.value, end=" ")

Code Output

نوع: محتوى تعليمي

السعرات الحرارية لجميع المكونات: 61 143 149 261 65 430 216 535 20 89

نوع: METADATA

وزارة التعليم Ministry of Education 2025 - 1447

نوع: METADATA

178

🔍 عناصر مرئية

The function signature for iter_cols showing its parameters with default None values, indicating optional arguments for column and row ranges.

An oval callout box with an arrow pointing to 'min_col' and 'max_col' in the function signature, labeling them as 'فهرس العمود الأصغر والأكبر' (smallest and largest column index).

An oval callout box with an arrow pointing to 'min_row' and 'max_row' in the function signature, labeling them as 'فهرس الصف الأصغر والأكبر' (smallest and largest row index).

A pink highlighted box containing text that explains the default behavior of the iter_cols function: if no index (row or column) is specified, the search range will start from cell 'A1'.

A Python code example demonstrating the use of the openpyxl library to load an Excel workbook named 'nutrition.xlsx', select the 'arabic' sheet, and then use iter_cols to extract data from column 3, rows 3 to 12. It then iterates through the extracted cells and prints their values, preceded by the label 'السعرات الحرارية لجميع المكونات:'.

The output of the Python code example, displaying a sequence of numerical values representing 'السعرات الحرارية لجميع المكونات:' (Calories for all components). The values are 61, 143, 149, 261, 65, 430, 216, 535, 20, 89.

📄 النص الكامل للصفحة

دالة iter_cols تُستخدم دالة iter_cols عندما تريد الحصول على جميع القيم لعمود أو أكثر في ورقة عمل إكسل. iter_cols (min_col=None, max_col=None, min_row=None, max_row=None) إذا لم تحدد الفهرس، فسيبدأ نطاق البحث من الخلية الأولى "A1". ستستخدم iter_cols للحصول على عدد السعرات الحرارية (kCal) لجميع المكونات الموجودة في ورقة العمل. ستحتاج إلى الحصول على مواقع جميع الخلايا ثم استدعاء سمة القيمة. --- SECTION: Python Code Example --- import openpyxl path = "nutrition.xlsx" wb = openpyxl.load_workbook(path) sheet_obj = wb['arabic'] # يحتوي على مواقع حقائق الطاقة لجميع المكونات sLoC أنشئ متغير cols = sheet_obj.iter_cols(min_col=3, max_col=3, min_row=3, max_row=12) # المتداخلة لطباعة قيمة كل خلية rof الآن استخدم حلقات print("السعرات الحرارية لجميع المكونات:", end=" ") for col in cols: for cell in col: print(cell.value, end=" ") --- SECTION: Code Output --- السعرات الحرارية لجميع المكونات: 61 143 149 261 65 430 216 535 20 89 وزارة التعليم Ministry of Education 2025 - 1447 178 --- VISUAL CONTEXT --- **CODE_SNIPPET**: Untitled Description: The function signature for iter_cols showing its parameters with default None values, indicating optional arguments for column and row ranges. Context: Illustrates the syntax and parameters of the iter_cols function from the openpyxl library. **DIAGRAM**: Untitled Description: An oval callout box with an arrow pointing to 'min_col' and 'max_col' in the function signature, labeling them as 'فهرس العمود الأصغر والأكبر' (smallest and largest column index). Context: Explains the meaning of the min_col and max_col parameters in the iter_cols function. **DIAGRAM**: Untitled Description: An oval callout box with an arrow pointing to 'min_row' and 'max_row' in the function signature, labeling them as 'فهرس الصف الأصغر والأكبر' (smallest and largest row index). Context: Explains the meaning of the min_row and max_row parameters in the iter_cols function. **HIGHLIGHT_BOX**: Untitled Description: A pink highlighted box containing text that explains the default behavior of the iter_cols function: if no index (row or column) is specified, the search range will start from cell 'A1'. Context: Provides important information about the default parameters of the iter_cols function. **CODE_BLOCK**: Untitled Description: A Python code example demonstrating the use of the openpyxl library to load an Excel workbook named 'nutrition.xlsx', select the 'arabic' sheet, and then use iter_cols to extract data from column 3, rows 3 to 12. It then iterates through the extracted cells and prints their values, preceded by the label 'السعرات الحرارية لجميع المكونات:'. Context: Provides a practical example of how to use the iter_cols function to extract specific data from an Excel file using Python. **TEXT_BLOCK**: Untitled Description: The output of the Python code example, displaying a sequence of numerical values representing 'السعرات الحرارية لجميع المكونات:' (Calories for all components). The values are 61, 143, 149, 261, 65, 430, 216, 535, 20, 89. Data: A list of 10 integer values representing calorie counts. Key Values: 61, 143, 149, 261, 65, 430, 216, 535, 20, 89 Context: Shows the result of executing the provided Python code, demonstrating the data extracted from the Excel sheet.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

ما هي الوظيفة الرئيسية لدالة `iter_cols` في مكتبة openpyxl؟

  • أ) تُستخدم لإنشاء أعمدة جديدة في ورقة عمل إكسل.
  • ب) تُستخدم لحساب مجموع القيم في عمود معين.
  • ج) تُستخدم للحصول على جميع القيم لعمود أو أكثر في ورقة عمل إكسل.
  • د) تُستخدم لحذف بيانات من أعمدة محددة في ورقة العمل.

الإجابة الصحيحة: c

الإجابة: تُستخدم للحصول على جميع القيم لعمود أو أكثر في ورقة عمل إكسل.

الشرح: 1. دالة `iter_cols` هي جزء من مكتبة openpyxl لمعالجة ملفات إكسل في بايثون. 2. وظيفتها الأساسية هي استرجاع (التكرار عبر) نطاق من الأعمدة في ورقة العمل. 3. تسمح للمبرمج باستخراج قيم الخلايا من أعمدة معينة بناءً على فهارس الصفوف والأعمدة المحددة.

تلميح: فكر في وظيفة تتعلق باستخراج البيانات من أعمدة محددة.

التصنيف: تعريف | المستوى: سهل

إذا لم تحدد أيًا من معاملات `min_col`, `max_col`, `min_row`, `max_row` عند استدعاء `iter_cols()`، من أين يبدأ نطاق البحث؟

  • أ) يبدأ نطاق البحث من العمود الأخير في الورقة.
  • ب) يبدأ نطاق البحث من الخلية الأولى 'A1'.
  • ج) يبدأ نطاق البحث من العمود 'C' والصف '3'.
  • د) سيظهر خطأ لأن الدالة تحتاج إلى معامل واحد على الأقل.

الإجابة الصحيحة: b

الإجابة: يبدأ نطاق البحث من الخلية الأولى 'A1'.

الشرح: 1. جميع معاملات دالة `iter_cols` (min_col, max_col, min_row, max_row) اختيارية وافتراضيتها `None`. 2. عندما تكون جميعها `None` (أي لم يتم تحديدها)، تفترض الدالة سلوكًا افتراضيًا. 3. هذا السلوك الافتراضي هو بدء البحث والتكرار من أول خلية في ورقة العمل، وهي الخلية 'A1'.

تلميح: ما هي الخلية الافتراضية التي يبدأ منها البرنامج إذا لم تحدد له نقطة بداية؟

التصنيف: مفهوم جوهري | المستوى: متوسط

في الكود `sheet_obj.iter_cols(min_col=3, max_col=3, min_row=3, max_row=12)`، ما نطاق الخلايا الذي سيتم استرداد قيمه؟

  • أ) جميع الخلايا في الصف الثالث من العمود الأول إلى العمود الثاني عشر.
  • ب) جميع الخلايا في العمود الثالث (C) من الصف الأول إلى الصف الثاني عشر.
  • ج) جميع الخلايا في العمود الثالث (C) من الصف الثالث إلى الصف الثاني عشر.
  • د) جميع الخلايا في الصفوف من 3 إلى 12 والأعمدة من 1 إلى 3.

الإجابة الصحيحة: c

الإجابة: جميع الخلايا في العمود الثالث (C) من الصف الثالث إلى الصف الثاني عشر.

الشرح: 1. `min_col=3` و `max_col=3` يعني أن النطاق يقتصر على العمود رقم 3 فقط (العمود C). 2. `min_row=3` يعني أن البحث يبدأ من الصف رقم 3. 3. `max_row=12` يعني أن البحث ينتهي عند الصف رقم 12. 4. النتيجة: سيتم استرداد قيم الخلايا في النطاق C3:C12.

تلميح: ركز على معاني `min_col`, `max_col`, `min_row`, و `max_row`.

التصنيف: سؤال اختبار | المستوى: متوسط

ما هي الخطوة التالية بعد إنشاء كائن `cols` باستخدام `iter_cols()` للحصول على القيم الفعلية للخلايا؟

  • أ) استخدام الأمر `print(cols.value)` مباشرة.
  • ب) استخدام حلقة `for` واحدة للتكرار مباشرة على كائن `cols`.
  • ج) استخدام حلقتين `for` متداخلتين: واحدة للتكرار عبر الأعمدة وأخرى للتكرار عبر الخلايا داخل كل عمود.
  • د) تحويل كائن `cols` إلى قائمة باستخدام `list()` ثم فهرستها.

الإجابة الصحيحة: c

الإجابة: استخدام حلقتين `for` متداخلتين: واحدة للتكرار عبر الأعمدة وأخرى للتكرار عبر الخلايا داخل كل عمود.

الشرح: 1. `iter_cols()` تُرجع مولدًا (generator) يحتوي على مجموعات (tuples) من كائنات الخلايا. 2. للحصول على القيمة داخل كل خلية، يجب الوصول إلى سمة `.value` الخاصة بها. 3. للوصول إلى كل خلية، نستخدم حلقة `for` خارجية للتكرار عبر كل عمود (col) في `cols`. 4. ثم نستخدم حلقة `for` داخلية للتكرار عبر كل خلية (cell) داخل العمود الحالي (col). 5. أخيرًا، نطبع `cell.value` للحصول على القيمة المخزنة.

تلميح: كائن `cols` يحتوي على مجموعات من الخلايا. كيف نصل إلى كل خلية على حدة؟

التصنيف: صيغة/خطوات | المستوى: صعب