كيفية إنشاء جدول من قائمة مرقمة باستخدام أداة الماكرو (“Macros”) في “ONLYOFFICE”
عند العمل على المستندات، قد نحتاج أحيانًا إلى تحويل القوائم المرقمة إلى جداول لتحسين قابليتها للقراءة. يمكن أن يكون تنفيذ هذه العملية يدويًا مستهلكًا للوقت، لكن بفضل الماكرو في “ONLYOFFICE” يمكنكم أتمتة المهام المتكررة بسهولة. نقدم لكم في هذه المقالة دليلًا تفصيليًا حول كيفية تطوير أداة الماكرو لتحويل القوائم المرقمة إلى جداول منظمة بسلاسة.
إنشاء الماكرو
استرجاع المستند والفقرات المرقمة
يبدأ الماكرو بالوصول إلى المستند النشط واسترجاع جميع الفقرات التي تحتوي على ترقيم:
const oDocument = Api.GetDocument();
const paragraphs = oDocument.GetAllNumberedParagraphs();
- “Api.GetDocument()” يسترجع المستند المفتوح حاليًا.
- “oDocument.GetAllNumberedParagraphs()” يجمع جميع الفقرات التي تستخدم أنماط الترقيم.
تنظيم العناصر المرقمة في صفوف
يقوم السكريبت بالمرور عبر كل فقرة مرقمة وترتيبها في صفوف الجدول:
let tableData = [];
let currentRow = [];
for (let i = 0; i < paragraphs.length; i++) {
let level = paragraphs[i].GetNumbering().GetLevelIndex();
let text = paragraphs[i].GetText().trim();
if (level === 0) {
if (currentRow.length > 0) {
tableData.push(currentRow);
}
currentRow = [text];
} else if (level === 1 && currentRow.length > 0) {
currentRow.push(text);
}
}
if (currentRow.length > 0) {
tableData.push(currentRow);
}
يقوم السكريبت بالمرور عبر جميع الفقرات والتحقق من مستويات الترقيم.
- العناصر ذات المستوى 0 تبدأ صفًا جديدًا، بينما العناصر ذات المستوى 1 تُضاف كأعمدة في الصف الحالي.
- بعد المعالجة، يتم تخزين جميع الصفوف المجمعة في “tableData“.
تحديد أبعاد الجدول
قبل إنشاء الجدول، يحدد الماكرو عدد الأعمدة المطلوبة. يقوم السكريبت بحساب “maxColumns” من خلال إيجاد أطول صف في “tableData”، مما يضمن أن الجدول يحتوي على عدد كافٍ من الأعمدة لاستيعاب جميع العناصر بشكل صحيح:
let maxColumns = 0;
for (let j = 0; j < tableData.length; j++) {
if (tableData[j].length > maxColumns) {
maxColumns = tableData[j].length;
}
}
إنشاء الجدول وملؤه بالمحتوى
بعد تنظيم البيانات، يقوم الماكرو بإنشاء جدول وإدراج المحتوى المستخرج داخله:
let table = Api.CreateTable(maxColumns, tableData.length);
oDocument.Push(table);
for (let row = 0; row < tableData.length; row++) {
for (let col = 0; col < tableData[row].length; col++) {
table
.GetCell(row, col)
.GetContent()
.GetElement(0)
.AddText(tableData[row][col]);
}
}
- تستخدم “Api.CreateTable(maxColumns, tableData.length)” لإنشاء جدول بالأبعاد المطلوبة.
- يمرر السكريبت عبر “tableData” ويضيف النصوص المناسبة إلى كل خلية في الجدول.
معالجة الأخطاء
لضمان تنفيذ سلس، يتم استخدام كتلة “try…catch” لالتقاط الأخطاء وتسجيلها. في حال حدوث خطأ، سيتم تسجيله في وحدة التحكم مما يساعد المستخدمين على استكشاف المشكلات وإصلاحها:
try {
// Code execution
} catch (error) {
console.log("Error: " + error.message);
}
لنقم بتشغيل الماكرو الآن ونرى كيف يعمل!
نأمل أن يكون هذا الماكرو إضافة مفيدة لأدواتكم، مما يساعدكم على تبسيط المهام المتكررة في سير العمل. تم تصميم وحدات الماكرو في “ONLYOFFICE” لتحسين الكفاءة وجعل العمل أكثر سلاسة. ندعوكم لاستكشاف مكتبة واجهة برمجة التطبيقات (“API”) وإنشاء وحدات ماكرو مخصصة تناسب احتياجاتكم. إن كانت لديكم أي أفكار أو اقتراحات، لا تترددوا في التواصل معنا، فنحن دائمًا منفتحون على التعاون ومشاركة الأفكار الجديدة!
ONLYOFFICE ١. أنشئ حسابك المجاني من
،٢. قم بعرض و تحرير أو التعاون على المستندات، الجداول ، العروض التقديمية