تنظيف نص جدول البيانات باستخدام ماكرو ONLYOFFICE قابل لإعادة الاستخدام
لتنظيف جداول البيانات بشكل متكرر، أنشئ ماكرو جافا سكريبت صغيرًا في محرر جداول البيانات، واستهدف نطاق النص الذي ترغب في تغييره فقط، واختبره أولًا على نسخة مكررة من المصنف. يزيل المثال أدناه الأحرف غير القابلة للطباعة ويقص المسافات البيضاء الزائدة من عمود البريد الإلكتروني مع الحفاظ على جميع الصفوف في مكانها.
تعمل وحدات ماكرو ONLYOFFICE داخل المحرر وتستخدم واجهة برمجة تطبيقات جافا سكريبت الخاصة بـ Office. لا تزال الوثائق الرسمية تصف سير العمل بأنه فتح "عرض" > "وحدات الماكرو" ، وكتابة أو لصق التعليمات البرمجية، وتشغيلها في المحرر؛ ولم يطرأ أي تغيير حديث على هذه العملية الأساسية في الوثائق الحالية. وحدة الماكرو نفسها عبارة عن نص برمجي توضيحي قابل لإعادة الاستخدام، وليست تقريرًا لاختبار برمجي. راجع دليل البدء السريع لوحدات ماكرو ONLYOFFICE ومرجع علامة تبويب "عرض" في محرر جداول البيانات .
قم بإعداد نسخة احتياطية آمنة وحدد عملية التنظيف.
لنفترض أن مصنفًا يحتوي على قائمة جهات اتصال، عنوانها في الصف الأول، وعناوين بريدها الإلكتروني في العمود B، من B2 إلى B500. قد تحتوي بعض القيم المستوردة على فواصل أسطر، أو علامات جدولة، أو مسافات بادئة ولاحقة. ينظف هذا المثال عمود النص هذا فقط. اضبط النطاق ليتوافق مع ورقتك قبل تشغيل الكود.
- احفظ نسخة منفصلة من المصنف، أو كرر ورقة العمل. احتفظ بالنسخة الأصلية سليمة حتى تتحقق من المخرجات.
- تأكد من أن النطاق المحدد يحتوي على نص خام، وليس صيغًا أو معرفات تعتمد على المسافات أو بيانات يجب أن تحافظ على التباعد الدقيق.
- أبقِ صف العناوين خارج النطاق. لا يكتشف الماكرو العناوين ولا يحدد الأعمدة التي يمكن تغييرها بأمان.
استخدم نطاقًا خاصًا بالعمود، مثل B2:B500، بدلًا من النطاق المستخدم بالكامل. قد يؤدي تنظيف كل خلية بشكل عشوائي إلى تغيير الأسماء أو العناوين أو الرموز أو نتائج الصيغ بطرق غير مقصودة.

افتح محرر الماكرو وأضف البرنامج النصي
افتح المصنف في محرر جداول البيانات ONLYOFFICE. اختر عرض > وحدات الماكرو لفتح محرر الماكرو، ثم أنشئ ماكرو أو استبدل الكود المبدئي في المحرر. تستخدم وحدات ماكرو ONLYOFFICE صيغة JavaScript وواجهة برمجة تطبيقات Office؛ وهي ليست وحدات ماكرو VBA. تجد شرحًا لآلية عمل الماكرو في المحرر وطرق واجهة برمجة التطبيقات المدعومة في دليل البدء السريع الرسمي لوحدات الماكرو .
ألصق هذا المثال، ثم غيّره B2:B500إلى نطاق النص الفعلي الخاص بك:
(function () {
var sheet = Api.GetActiveSheet();
var range = sheet.GetRange("B2:B500");
var rows = range.GetValue();
var functions = Api.WorksheetFunction;
for (var i = 0; i < rows.length; i++) {
var value = rows[i][0];
if (typeof value === "string") {
value = functions.CLEAN(value);
rows[i][0] = value.replace(/^\s+|\s+$/g, "")
.replace(/\s{2,}/g, " ");
}
}
range.SetValue(rows);
})();
يقرأ الماكرو النطاق في مصفوفة ثنائية الأبعاد، ويعالج خلايا السلسلة النصية، ثم يعيد كتابة المصفوفة إلى نفس النطاق. CLEANيزيل الأحرف غير القابلة للطباعة؛ ويستبدل التعبيران النمطيان المسافات البيضاء عند الحواف ويقللان المسافات البيضاء المتكررة داخل السلسلة النصية إلى مسافة واحدة. يؤكد مرجع واجهة برمجة التطبيقات (API) GetValueأن بإمكانه إرجاع مصفوفة ثنائية الأبعاد لنطاق معين، وأنه SetValueيقبل المصفوفات؛ وتوثق مراجع GetValue و SetValue و CLEAN هذه الاستدعاءات.
نظرًا لأن البرنامج النصي يعيد كتابة القيم، تجنب توجيهه إلى الخلايا التي تحتوي على صيغ، فقد تُستبدل هذه الخلايا بقيمها المحسوبة الحالية. كما أنه لا يزيل السجلات المكررة، ولا يُوحّد استخدام الأحرف الكبيرة والصغيرة، ولا يتحقق من إمكانية توصيل الطلبات إلى عنوان، ولا يُغيّر تنسيقات أرقام الهواتف. هذه قواعد تنظيف منفصلة، ويجب تصميمها واختبارها بشكل مستقل.

قم بتشغيله على نطاق تحكم
- تحقق من نطاق القيم مرة أخرى. إذا انتهت القائمة عند الصف 240، على سبيل المثال، فاستخدم النطاق B2:B240 بدلاً من معالجة مئات الصفوف غير المستخدمة.
- انقر فوق "تشغيل" في محرر الماكرو. إذا أبلغ المحرر عن خطأ في بناء الجملة، فراجع علامات الاقتباس والأقواس والأقواس المعقوفة قبل تغيير النطاق أو إضافة المزيد من المنطق.
- ارجع إلى ورقة العمل وافحص عدة خلايا، بما في ذلك قيمة تحتاج إلى تنظيف، وقيمة موجودة بالفعل بالتنسيق الصحيح، وخلية فارغة.
يُسهّل البدء بنطاق ضيق فهم التأثير. بمجرد أن يصبح الناتج صحيحًا، يمكنك إعادة استخدام الماكرو في ورقة عمل أخرى عن طريق تعديل النطاق عمدًا. لا تفترض أن حرف العمود أو حد الصف يظل صالحًا في مصنف آخر.
إذا كان أمر الماكرو مفقودًا أو تعذر تشغيل التعليمات البرمجية، فتحقق مما إذا كانت وحدات الماكرو مُفعّلة في المحرر أو مُعطّلة في إعدادات التطبيق المُضيف. في المحرر عبر الإنترنت، يُمكن للمسؤول التحكم في توفر وحدات الماكرو؛ وتصف الإعدادات المتقدمة لمحرر جداول البيانات خيارات الماكرو المتاحة للمستخدم. تجنب تفعيل التشغيل التلقائي للملفات من مصادر غير معروفة؛ وشغّل فقط التعليمات البرمجية التي تفهمها.

تحقق من النتيجة قبل إعادة استخدام الماكرو
قارن العمود المُنقّح بالنسخة الأصلية بدلاً من الحكم على نجاح العملية من خلال المظهر فقط. تأكد من أن كل بريد إلكتروني غير فارغ لا يزال في نفس الصف، وأنه لم يتم حذف أي جهة اتصال، وأن الاختلافات الوحيدة هي الأحرف والمسافات التي أردت توحيدها. تحقق من عينة بالقرب من أعلى ومنتصف ونهاية النطاق المُختار. ابحث عن مسافة في بداية أو نهاية قيمة ما إذا كان محرر النصوص لديك يُظهر ذلك، وتفحّص القيم المُستوردة التي كانت تحتوي سابقًا على فواصل أسطر أو أحرف تحكم.
قارن أيضًا عدد الصفوف وأي صيغ أو عوامل تصفية أو عمليات بحث تابعة تستخدم العمود. إذا تغيرت نتيجة صيغة ما بشكل غير متوقع، فتراجع عن التعديل أو استعد النسخة الأصلية؛ يجب أن يقتصر عمل الماكرو على خلايا النص الخام. بالنسبة للمصنفات الكبيرة أو ذات الأهمية البالغة للعمل، قارن العمود بعد تنظيفه بالكامل مع النسخة الاحتياطية، أو استخدم عمود إخراج منفصل أولًا حتى تظل التغييرات قابلة للمراجعة.

حافظ على قابلية تكرار عملية التنظيف
بعد التأكد من صحة التشغيل الأول، احفظ المصنف ليظل الماكرو متاحًا مع المستند وفقًا لآلية عمل الماكرو في المحرر. لا يُفترض ظهور الماكرو المخزن في مصنف واحد تلقائيًا في كل ملف جديد. بالنسبة لعمليات الاستيراد المتكررة، احتفظ بقالب نظيف أو نسخة مصدر محمية، ووثّق النطاق الذي يتوقعه الماكرو، وقم بتحديثه عند تغيير تخطيط الورقة. تُعد ماكرو ONLYOFFICE مفيدة لقواعد التنظيف المحددة؛ فهي لا تستطيع تحديد ما إذا كانت القيمة صحيحة فعليًا أو ما إذا كان التغيير مناسبًا لمجموعة البيانات الخاصة بك.
النمط الموثوق به بسيط: الاحتفاظ بنسخة المصدر، واستهداف نطاق معروف، وإجراء تحويل محدد واحد، ومقارنة النتيجة قبل مشاركة البيانات أو استيرادها إلى مكان آخر.