مايكروسوفت إكسل هو أحد تلك الأدوات الشائعة التي لا يمكن لمعظمنا الهروب منها حتى لو حاولنا. يستخدم العديد من المحترفين في تكنولوجيا المعلومات إكسل كقاعدة بيانات صغيرة تخزن الكثير من البيانات في سيناريوهات التشغيل التلقائي المختلفة. ما هو أفضل سيناريو للتشغيل التلقائي وإكسل؟ باوشرشيل وإكسل!
لطالما كانت جداول إكسل صعبة البرمجة والتشغيل التلقائي. على عكس نظيرها المبسط (والأقل ميزاتًا) ملف CSV ، فإن مصنفات إكسل ليست مجرد ملفات نصية بسيطة. تتطلب مصنفات إكسل باستخدام باوشرشيل للتلاعب بكائنات نموذج الكائنات المركبة (COM) المعقدة ، وبالتالي يجب أن يكون لديك إكسل مثبتًا. لم يعد الأمر كذلك.
ولحسن الحظ ، أنشأ أحد أعضاء مجتمع باوشرشيل الذكي ، دوغ فينكي ، وحدة باوشرشيل تسمى استيراد إكسل للموتالينا. تجريد وحدة استيراد إكسل كل تلك التعقيدات. يجعل من الممكن إدارة سهلة لمصنفات إكسل والانتقال إلى برمجة باوشرشيل!
في هذه المقالة ، دعنا نستكشف ما يمكنك القيام به مع باوشرشيل وإكسل باستخدام وحدة استيراد إكسل وبعض الحالات الاستخدام الشائعة.
المتطلبات الأساسية
عند تشغيل وحدة ImportExcel على نظام Windows، لا تحتاج إلى تثبيت تبعيات منفصلة. ومع ذلك، إذا كنت تعمل على نظام macOS، ستحتاج إلى تثبيت حزمة mono-libgdiplus باستخدام brew install mono-libgdiplus
. سيتم بناء جميع الأمثلة في هذا المقال باستخدام macOS ولكن يجب أن تعمل جميع الأمثلة على الأنظمة المتعددة.
إذا كنت تستخدم macOS، تأكد من إعادة تشغيل جلسة PowerShell الخاصة بك قبل المتابعة.
تثبيت وحدة ImportExcel
ابدأ بتنزيل وتثبيت الوحدة عبر PowerShell Gallery باستخدام Install-Module ImportExcel -Scope CurrentUser
. بعد لحظات قليلة، ستكون جاهزًا للاستخدام.
استخدام PowerShell وExcel لتصدير إلى ورقة عمل
قد تكون على دراية بأمرين الـ PowerShell القياسيين Export-Csv
و Import-Csv
. تتيح لك هذه الأوامر قراءة وتصدير كائنات PowerShell إلى ملفات CSV. للأسف، ليس هناك أوامر Export-Excel
و Import-Excel
. ولكن باستخدام وحدة ImportExcel، يمكنك بناء وظائف خاصة بك بسهولة.
إحدى أكثر الطلبات شيوعًا التي يطلبها مسؤول النظام هي تصدير كائنات PowerShell إلى ورقة عمل Excel. باستخدام أمر Export-Excel
في وحدة ImportExcel، يمكنك بسهولة تحقيق ذلك.
على سبيل المثال، ربما تحتاج إلى العثور على بعض العمليات التي تعمل على جهاز الكمبيوتر المحلي الخاص بك وتضمينها في جدول بيانات Excel.
يقبل أمر
Export-Excel
أي كائن بالضبط بنفس الطريقة التي يفعل فيها أمرExport-Csv
. يمكنك توجيه أي نوع من الكائنات إلى هذا الأمر.
للعثور على العمليات التي تعمل على نظام باستخدام PowerShell، استخدم أمر Get-Process
الذي يُرجع كل عملية تعمل ومعلومات متعددة حول كل عملية. لتصدير تلك المعلومات إلى Excel، استخدم أمر Export-Excel
مع توفير مسار الملف إلى جدول بيانات Excel الذي سيتم إنشاؤه. يمكنك رؤية مثال على الأمر ولقطة شاشة لملف Excel المُنشأ أدناه.

تهانينا! لقد قمت الآن بتصدير جميع المعلومات تمامًا مثل Export-Csv
ولكن، على عكس Export-Csv
، يمكننا جعل هذه البيانات أكثر تفردًا بكثير. دعونا نتأكد من أن اسم ورقة العمل يُسمى العمليات، وأن البيانات في جدول وأن الصفوف مُحجمة تلقائيًا.
باستخدام مفتاح التبديل AutoSize
لتحجيم جميع الصفوف، TableName
لتحديد اسم الجدول الذي سيتضمن جميع البيانات، واسم معامل WorksheetName
لـ Processes، يمكنك أن ترى في اللقطة أدناه ما يمكن بناؤه.

يحتوي cmdlet
Export-Excel
على العديد من المعاملات التي يمكنك استخدامها لإنشاء سجلات Excel من جميع الأنواع. للحصول على نظرة شاملة على كل ما يمكنExport-Excel
فعله، قم بتشغيلGet-Help Export-Excel
.
استخدام PowerShell للاستيراد إلى Excel
لقد قمت بتصدير بعض المعلومات إلى ملف يسمى processes.xlsx في القسم السابق. ربما الآن تحتاج إلى نقل هذا الملف إلى جهاز كمبيوتر آخر واستيراد/قراءة هذه المعلومات باستخدام PowerShell وExcel. ليس هناك أي مشكلة. لديك Import-Excel
في تصرفك.
في استخدامه الأساسي، تحتاج فقط إلى توفير مسار الوثيقة/العمل في Excel باستخدام معامل Path
كما هو موضح أدناه. سترى أنه يقرأ الورقة الأولى، في هذه الحالة، ورقة Processes، ويعيد كائنات PowerShell.

ربما لديك العديد من الأوراق في دفتر عمل Excel؟ يمكنك قراءة ورقة عمل معينة باستخدام معامل WorksheetName
.
هل تحتاج إلى قراءة أعمدة معينة فقط من ورقة العمل في Excel؟ استخدم معامل HeaderName
لتحديد فقط تلك المعلمات التي ترغب في قراءتها.
يمتلك cmdlet
Import-Excel
معلمات أخرى يمكنك استخدامها لقراءة مصنفات Excel من جميع الأنواع. للحصول على نظرة شاملة حول كل ما يمكنImport-Excel
القيام به، قم بتشغيلGet-Help Import-Excel
.
استخدام PowerShell للحصول (وتعيين) قيم خلايا Excel
أنت الآن تعرف كيفية قراءة ورقة عمل كاملة باستخدام PowerShell و Excel ولكن ماذا لو كنت بحاجة فقط إلى قيمة خلية واحدة؟ من الناحية التقنية، يمكنك استخدام Import-Excel
وتصفية القيمة التي تحتاجها باستخدام Where-Object
ولكن ذلك لن يكون فعالًا جدًا.
بدلاً من ذلك، باستخدام cmdlet Open-ExcelPackage
، يمكنك “تحويل” مصنف Excel إلى كائن PowerShell يمكن قراءته وتلاعبه. للعثور على قيمة خلية، يتعين عليك أولاً فتح مصنف Excel لجلبه إلى الذاكرة.
تشبه cmdlet
Open-ExcelPackage
استخدامNew-Object -comobject excel.application
إذا كنت تعمل مباشرةً مع كائنات COM.
بعد ذلك، اختر ورقة العمل داخل المصنف.
هذه العملية مشابهة لطريقة كائنات COM في فتح مصنفات العمل باستخدام
excel.workbooks.open
.
بمجرد الحصول على ورقة العمل المخصصة إلى متغير، يمكنك الآن الوصول إلى الصفوف والأعمدة والخلايا الفردية. ربما تحتاج إلى العثور على جميع قيم الخلية في الصف A1. كل ما عليك فعله هو الإشارة إلى خاصية Cells
وتقديم فهرس لـ A1 كما هو موضح أدناه.
يمكنك أيضًا تغيير قيم الخلايا في ورقة عمل عن طريق تعيين قيمة مختلفة على سبيل المثال.
$worksheet.Cells['A1'] = 'قيمة مختلفة'
بمجرد تخزينها في الذاكرة، من المهم إطلاق حزمة Excel باستخدام سطر الأوامر Close-ExcelPackage
.
تحويل ورقات العمل إلى ملفات CSV باستخدام PowerShell وExcel
بمجرد الحصول على محتويات ورقة العمل في Excel ممثلة عبر كائنات PowerShell، فإن “تحويل” ورقات العمل في Excel إلى CSV يتطلب ببساطة إرسال تلك الكائنات إلى سطر الأوامر Export-Csv
.
باستخدام ورقة العمل processes.xlsx التي تم إنشاؤها سابقًا، اقرأ الورقة العمل الأولى التي تحصل على جميع البيانات في كائنات PowerShell، ثم قم بتصدير تلك الكائنات إلى CSV باستخدام الأمر أدناه.
إذا فتحت الآن ملف CSV الناتج، سترى نفس البيانات داخل ورقة العمل Processes (في هذا المثال).
تحويل ورقات العمل المتعددة
إذا كان لديك مصنف Excel مع عدة ورقات عمل، يمكنك أيضًا إنشاء ملف CSV لكل ورقة عمل. للقيام بذلك، يمكنك العثور على جميع الأوراق في مصنف باستخدام سطر الأوامر Get-ExcelSheetInfo
. بمجرد الحصول على أسماء الورقات العمل، يمكنك بعد ذلك تمرير تلك الأسماء إلى معلمة WorksheetName
واستخدام اسم الورقة أيضًا كاسم لملف CSV.
أدناه يمكنك العثور على الشيفرة المطلوبة مع مثال باستخدام PowerShell وExcel.
الختام
باستخدام PowerShell وExcel ، يمكنك استيراد البيانات وتصديرها وإدارتها في دفاتر العمل في Excel تمامًا كما تفعل مع ملفات CSV دون الحاجة إلى تثبيت Excel!
في هذا المقال ، تعلمت أساسيات قراءة وكتابة البيانات في دفتر عمل Excel ولكن هذا يمثل مجرد لمحة سطحية. باستخدام PowerShell ووحدة ImportExcel ، يمكنك إنشاء مخططات بيانية وجداول دورية والاستفادة من ميزات Excel الأخرى القوية!