الرئيسية
» مكتب MS
»
كيفية استخدام وحدات ماكرو ONLYOFFICE لأتمتة تنظيف جداول البيانات
كيفية استخدام وحدات ماكرو ONLYOFFICE لأتمتة تنظيف جداول البيانات
تنظيف جداول البيانات عملية متكررة: فالأسماء المُصدَّرة تأتي بمسافات زائدة، والنصوص المُلصقة تحتوي على مسافات غير قابلة للكسر، وقد تتلف الصيغ أو المعرّفات نتيجةً للاستبدالات غير الدقيقة. يُمكن لماكرو ONLYOFFICE توحيد النصوص ضمن نطاق مُحدد مع الحفاظ على القيم الرقمية وخلايا الصيغ كما هي. المثال أدناه يُعالج المسافات البيضاء فقط؛ أما إزالة التكرارات، وتحويل التواريخ، وحذف الصفوف الفارغة فتتطلب قواعد منفصلة.
تمت مراجعة الوثائق بتاريخ 6 أكتوبر 2026. تستخدم وحدات ماكرو ONLYOFFICE لغة جافا سكريبت مع واجهة برمجة تطبيقات جافا سكريبت الخاصة بـ Office، وليس لغة VBA الخاصة بـ Excel. تفتح الوثائق الحالية للمحرر مساحة عمل الماكرو من خلال عرض ← وحدات الماكرو . قد يختلف مظهر شريط الأدوات بين إصدارات سطح المكتب والإصدارات المستضافة.
مهام التنظيف التي يمكن لهذا الماكرو التعامل معها
تزيل هذه العينة المسافات البادئة واللاحقة أو علامات الجدولة، وتحول المسافات غير القابلة للكسر إلى مسافات عادية، وتدمج المسافات أو علامات الجدولة المتكررة داخل النص. كما تتجاهل الصيغ والقيم غير النصية. يقلل هذا النطاق المحدود من احتمالية تغيير التواريخ أو المبالغ أو الخلايا المحسوبة أثناء إعداد عملية استيراد متكررة.
مشكلة في البيانات
ما يفعله النموذج
قم بالمراجعة قبل الأتمتة
المسافات البادئة أو اللاحقة وعلامات الجدولة
يزيلها من خلايا النص
عادةً ما يكون آمناً للأسماء والملصقات، ولكن تحقق من الحقول التي تكون فيها المسافات ذات معنى.
مساحات غير قابلة للكسر
يستبدلها بمسافات عادية
مفيد لنصوص الويب المنسوخة؛ تحقق من حقل المصدر
المسافات أو علامات الجدولة المتكررة
يؤدي ذلك إلى طي كل جولة إلى مساحة واحدة
لا تستخدمه مع النصوص ذات العرض الثابت أو المسافات البادئة المتعمدة
الصيغ والأرقام والقيم المنطقية
لا يغيرها
تأكد من أن خلايا الصيغة لا تزال تعمل بعد التشغيل
صفوف مكررة، تواريخ، صفوف فارغة
لا يغير ذلك من حالتهم
حدد قواعد العمل أولاً؛ فهذه ليست مجرد تحسينات شكلية.
1. قم بإعداد نسخة وحدد النطاق
احفظ نسخة احتياطية من جدول البيانات قبل تشغيل أي ماكرو يُجري تغييرات على الخلايا. حدد ورقة العمل وصفوف البيانات المراد تنظيفها. في الكود أدناه، A2:D500يُمثل نطاقًا نموذجيًا: يُفترض أن الصف 1 يحتوي على عناوين، والبيانات مُتوقعة في الأعمدة من A إلى D. غيّر هذا العنوان ليُطابق ورقتك. استخدم نطاقًا مُحددًا يُغطي السجلات المطلوبة، ولا تُدرج ملاحظات أو صيغًا أو أعمدة غير ذات صلة.
توفر ورقة العمل الصغيرة عينة محدودة؛ حافظ على صف العنوان خارج نطاق التنظيف.
لإجراء اختبار أولي، انسخ بعض السجلات التمثيلية إلى ورقة عمل مؤقتة أو كرر الملف واختصر النطاق، على سبيل المثال A2:D10. أضف أمثلة تحتوي على مسافات عادية، ونص ملصق، وخلايا فارغة، وصيغ حتى تتمكن من التأكد من كيفية تعامل الماكرو مع كل حالة.
2. افتح محرر وحدات الماكرو في ONLYOFFICE
افتح جدول البيانات في محرر جداول البيانات ONLYOFFICE، ثم اختر عرض ← وحدات الماكرو . أنشئ ماكرو جديدًا في نافذة الماكرو، أو حدد وحدة نمطية جديدة، ثم أعطها اسمًا واضحًا . يشرح دليل بدء استخدام وحدات الماكروCleanTextWhitespace الرسمي في ONLYOFFICE هذه الخطوة ووظيفة التشغيل.
يحتوي شريط العرض على عنصر تحكم وحدات الماكرو المستخدم لفتح مساحة عمل الماكرو.
إذا كانت وحدات الماكرو معطلة في إعدادات المحرر، فراجع الإعدادات ← الإعدادات المتقدمة ← وحدات الماكرو . يوفر ONLYOFFICE خيارات لتعطيل وحدات الماكرو، أو عرض إشعار، أو تمكينها. بالنسبة لمصنف لم تقم بإنشائه، لا تُفعّل جميع وحدات الماكرو بشكل عام لمجرد تشغيل نص برمجي واحد؛ بل راجع الكود واتبع سياسة مؤسستك.
(function () {
var oSheet = Api.GetActiveSheet();
var oRange = oSheet.GetRange("A2:D500");
var nRows = oRange.GetRowsCount();
var nCols = oRange.GetColumnsCount();
for (var r = 1; r <= nRows; r++) {
for (var c = 1; c <= nCols; c++) {
var oCell = oRange.GetCells(r, c);
var sFormula = oCell.GetFormula();
// Do not replace formulas with their displayed results.
if (sFormula) {
continue;
}
var v = oCell.GetValue();
// Restrict this cleanup to text constants.
if (typeof v !== "string") {
continue;
}
var sClean = v
.replace(/\u00A0/g, " ")
.replace(/[ \t]+/g, " ")
.replace(/^[ \t]+|[ \t]+$/g, "");
// SetValue treats strings beginning with "=" as formulas.
if (sClean.charAt(0) === "=") {
continue;
}
if (sClean !== v) {
oCell.SetValue(sClean);
}
}
}
})();
يعرض جزء التعليمات البرمجية نطاق وطرق قراءة الخلايا المستخدمة بواسطة ماكرو التنظيف.
تُعتبر عدادات الصفوف والأعمدة المُمرَّرة GetCellsنسبيةً للنطاق المُحدَّد؛ وتستخدم أمثلة واجهة برمجة التطبيقات (API) مواضع مُرقَّمة للوصول إلى الخلية. يقرأ الماكرو صيغة كل خلية أولًا ويتخطى الخلية إذا كانت تحتوي على صيغة. ثم يقرأ القيمة ويُعدِّل فقط السلاسل النصية التي تطرأ عليها تغييرات فعلية. كما يتم تخطي السلسلة النصية التي قد تُصبح صيغةً تحتوي على علامة يساوي بعد حذف الأحرف الزائدة، لأن الماكرو SetValueقد يُفسِّر علامة يساوي في البداية على أنها صيغة.
لا يؤثر تعبير المسافات البيضاء على فواصل الأسطر عمدًا، ولا يُغير حالة الأحرف، أو علامات الترقيم، أو القيم الرقمية، أو تسلسلات التواريخ. إذا كان مصدرك يحتوي على ملاحظات متعددة الأسطر، أو حقول ذات عرض ثابت، أو مُعرّفات تتضمن مسافات خاصة، فاختبر هذه الأعمدة بشكل منفصل، وعدّل السياسة بدلًا من تطبيق توحيد عام.
4. قم بتشغيله مرة واحدة، ثم تحقق من النتيجة
شغّل الماكرو من محرر الماكرو. بما أنه يُحدّث الخلايا في النطاق المُحدد، تفحّص النص المُعدّل في النسخة العاملة قبل الحفظ فوق المصدر. قارن بضعة صفوف بالأصل، بما في ذلك الصف الأول والأخير في النطاق. تأكد من بقاء العناوين كما هي، وأن الصيغ لا تزال تعمل، وأن الخلايا الرقمية مثل التواريخ والعملات والمعرفات لم تتغير.
استخدم ورقة العمل للتحقق من الصفوف التمثيلية ومقارنتها بالنسخة الأصلية.
بالنسبة للجداول الكبيرة، قم بتصفية أو البحث عن المسافات المشبوهة قبل وبعد التشغيل، وقارن عدد الصفوف. لا يقوم الماكرو بحذف الصفوف، أو إزالة السجلات المكررة، أو تحويل التواريخ، أو ملء الفراغات، لذا يجب أن تركز هذه الفحوصات على القيم النصية. إذا كنت بحاجة إلى سجل تدقيق مرئي، فأضف عمود مراجعة منفصل أو انسخ النتائج المنقحة إلى جدول مؤقت بدلاً من كتابة رسائل الحالة في خلية عشوائية.
قواعد التنظيف الشائعة التي تتطلب قرارًا منفصلاً
السجلات المكررة: حدد الأعمدة التي تُعرّف السجل المكرر، وتأكد من صحة المعاملات المتكررة قبل حذف الصفوف. لا يعني وجود اسمين متطابقين بالضرورة أنهما يمثلان الشخص نفسه أو الطلب نفسه.
الخلايا والصفوف الفارغة: للخلايا الفارغة والصفر والقيم النصية مثل "غير متوفر" معانٍ مختلفة. لا تقم باستبدالها أو حذفها دون قاعدة بيانات.
التواريخ والأرقام المخزنة كنص: اختر التنسيق واللغة المتوقعين أولاً. يتجنب المثال تحويل هذه القيم لأن سلسلة نصية مثل 03/04/2026هذه غامضة بين المناطق.
الأصفار البادئة: استورد المعرفات مثل 00127الأصفار البادئة كنص. إذا كانت جداول البيانات قد خزنتها بالفعل كأرقام، فلن تتمكن عملية حذف الأصفار البادئة من استعادة الأصفار المفقودة.
توحيد حالة الأحرف: يمكن أن يساعد تحويل عناوين البريد الإلكتروني إلى أحرف صغيرة أو رموز الولايات إلى أحرف كبيرة في حقول معينة، ولكن تطبيق ذلك على الأسماء أو أوصاف المنتجات يمكن أن يدمر حالة الأحرف المقصودة.
استخدم وحدات ماكرو ONLYOFFICE عندما يُمكن التعبير عن قاعدة قابلة للتكرار بدقة، وعندما يُمكنك اختبارها على نسخة. نظام الماكرو مكتوب بلغة JavaScript وليس VBA، وهو مُرتبط بالمستند وليس مُتاحًا بشكل عام، ومُقيّد من الوصول المباشر إلى نظام الملفات والشبكة، كما هو مُوضّح في الأسئلة الشائعة حول ماكرو ONLYOFFICE . يُحدّ هذا التقييد من نطاق وصول الماكرو خارج المُحرّر، ولكن لا يزال بإمكان الماكرو تغيير محتويات المصنّف، لذا راجع الكود واختبره قبل تشغيله.
بالنسبة لعمليات الاستيراد المتكررة، احتفظ بالبرنامج النصي في قالب أو نسخة مستند خاضعة للتحكم واستخدم قائمة تحقق قصيرة: تأكد من الورقة النشطة، وقم بتحديث عنوان النطاق، واستبعد العناوين والصيغ، وقم بتشغيله على نسخة، وتحقق من السلاسل النصية التي تم تحريرها، وقارن المصنف النهائي بالأصل قبل حفظه أو مشاركته.