قراءة المصنفات
افتح ملفات Excel واقرأها
قراءة المصنفات درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
Excel من Python
تُعد مكتبة openpyxl المكتبة القياسية لقراءة ملفات Excel الحديثة وكتابتها (بتنسيق .xlsx). وتتيح لـ Python أتمتة مهام جداول البيانات التي كان الناس ينفذونها يدويًا.
يركز هذا الدرس على فتح الملفات وقراءة محتوياتها.
نموذج المصنف
تحتوي ملفات Excel على تسلسل هرمي واضح تحاكيه مكتبة openpyxl:
- Workbook الملف بأكمله
- Worksheet علامة تبويب واحدة داخله
- Cell مربع واحد بأسلوب A1 يحتوي على قيمة
تنتقل من المصنف إلى ورقة العمل ثم إلى الخلية.
فتح ملف
تقرأ load_workbook('data.xlsx') ملفًا وتعيد مصنفًا. بالنسبة إلى الملفات الكبيرة التي تقرؤها فقط، مرّر read_only=True لقراءة الصفوف على نحو متدفق وتوفير الذاكرة.
استخدم data_only=True لقراءة آخر نتيجة محسوبة لخلايا الصيغ بدلًا من نص الصيغة.
تحديد ورقة
تعيد wb.active ورقة العمل المحددة حاليًا. وتحدد wb['Sheet1'] الورقة حسب الاسم، بينما تسرد wb.sheetnames جميع علامات التبويب. ويُعد اختيار الورقة الصحيحة الخطوة الأولى في أي عملية قراءة.
sheetnames = ['Summary', 'Q1', 'Q2', 'Q3']
wanted = 'Q2'
if wanted in sheetnames:
print('Selecting sheet:', wanted)
else:
print('Not found, defaulting to', sheetnames[0])قراءة خلية واحدة
يمكنك الوصول إلى خلية باستخدام عنوانها في Excel: ws['A1'].value، أو باستخدام الأرقام عبر ws.cell(row=1, column=1).value. وتحتوي السمة .value على البيانات الفعلية، التي قد تكون نصًا أو رقمًا أو تاريخًا أو None.
أحرف الأعمدة وأرقامها
تُكتب أعمدة Excel على شكل أحرف (A وB و... وZ وAA)، لكن openpyxl تستخدم أيضًا أرقامًا تبدأ من 1. وقد تحتاج أحيانًا إلى التحويل بينهما. إليك رقم العمود انطلاقًا من حرف.
def col_to_num(letters):
num = 0
for ch in letters.upper():
num = num * 26 + (ord(ch) - ord('A') + 1)
return num
for c in ['A', 'B', 'Z', 'AA']:
print(c, '->', col_to_num(c))التكرار على الصفوف
تعيد ws.iter_rows(values_only=True) كل صف على شكل tuple من القيم. وهذه أنظف طريقة لقراءة جدول. وعادةً ما يكون الصف الأول هو صف العناوين.
تكرّر على الصفوف كما تفعل مع أي كائن قابل للتكرار.
rows = [
('Name', 'Age', 'City'),
('Ada', 36, 'London'),
('Linus', 54, 'Helsinki'),
]
header = rows[0]
for record in rows[1:]:
print(dict(zip(header, record)))العثور على النطاق المستخدم
تخبرك ws.max_row وws.max_column بمدى امتداد البيانات. وتعيد ws.dimensions سلسلة النطاق مثل 'A1:C10'. استخدم هذه القيم لتجنب قراءة الخلايا الفارغة.
قراءة نطاق
يمكنك اقتطاع جزء من ورقة العمل: إذ تعيد ws['A1:C3'] tuple من tuples للصفوف، تحتوي على كائنات الخلايا. ويكون ذلك مفيدًا عندما تحتاج إلى جزء من الورقة فقط بدلًا من قراءة كل صف.
التعامل مع الخلايا الفارغة
تعيد الخلايا الفارغة القيمة None. جداول البيانات الحقيقية غير منظمة، لذلك احمِ الكود من القيم المفقودة عند القراءة، مثلًا باستبدالها بقيمة افتراضية. ويمنع ذلك حدوث أعطال في المراحل اللاحقة.
raw_row = ('Ada', None, 'London')
clean = [v if v is not None else 'N/A' for v in raw_row]
print(clean)القراءة من أوراق متعددة
قد يوزع المصنف البيانات على عدة علامات تبويب، مثل علامة تبويب لكل شهر. كرّر على wb.sheetnames، وحدد كل ورقة، واقرأها بالمنطق نفسه. أضف اسم الورقة إلى كل صف لتتبع مصدره.
يجمّع هذا النمط علامات تبويب متعددة في مجموعة بيانات واحدة.
تحقق سريع
اختبر مهاراتك في القراءة.
مراجعة
يمكنك الآن قراءة ملفات Excel:
- التسلسل الهرمي: workbook > worksheet > cell
load_workbookمع خياريread_onlyوdata_only- حدد الأوراق باستخدام
wb.activeوwb['Name']وwb.sheetnames - اقرأ باستخدام
.valueوiter_rows(values_only=True)، وتحقق منmax_rowوmax_column - احمِ الكود من القيمة
Noneفي الخلايا الفارغة
الأسئلة الشائعة
هل درس «قراءة المصنفات» مجاني؟
نعم — نص درس «قراءة المصنفات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «قراءة المصنفات»؟
افتح ملفات Excel واقرأها تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «قراءة المصنفات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.