كيفية فرز أوراق Google تلقائيًا باستخدام برنامج Apps Script

يحتوي جدول بيانات Google في دورات Udemy هذه على حوالي 50 ورقة ، واحدة لكل لغة برمجة ، ويتم فرز الأوراق بترتيب عشوائي ، لذلك من الصعب العثور على ورقة معينة.
سيستغرق الأمر بعض الوقت لفرز أوراق العمل يدويًا ، لكن يمكننا بسهولة أتمتة العملية باستخدام برنامج Google Apps Script والانتقال بسهولة عبر جداول بيانات كبيرة.
أتمتة فرز الورقة مع برنامج Google Apps Script
ستقوم مقتطف الكود التالي تلقائيًا بفرز أوراق العمل في ورقة Google Alphanumerical. يمكن للنص ترتيب الأوراق إما في ترتيب تصاعدي أو تنازلي بناءً على أسماء الأوراق.
للبدء ، انتقل إلى script actsensions> Apps لفتح محرر البرنامج النصي. ثم ، نسخ والصق الرمز التالي:
const sortGoogleSheets = (ascending = true) => {
const options = {
sensitivity: "base",
ignorePunctuation: true,
numeric: true,
};
const compareFn = (sheet1, sheet2) => {
return ascending
? sheet1.getName().localeCompare(sheet2.getName(), undefined, options)
: sheet2.getName().localeCompare(sheet1.getName(), undefined, options);
};
// Get the active spreadsheet.
const ss = SpreadsheetApp.getActiveSpreadsheet();
ss.getSheets()
.sort(compareFn)
.reverse()
.forEach(sheet => {
ss.setActiveSheet(sheet);
ss.moveActiveSheet(1);
});
// Flush the changes to the spreadsheet.
SpreadsheetApp.flush();
};
ال compareFn
تقارن الدالة صفحتين وتُرجع قيمة تشير إلى ما إذا كانت الورقة الأولى يجب أن تأتي قبل أو بعد الورقة الثانية. تُرجع الوظيفة القيم التالية:
-1
إذا كان يجب أن تأتي الورقة الأولى قبل الورقة الثانية.1
إذا كان يجب أن تأتي الورقة الأولى بعد الورقة الثانية.
خيارات الفرز المتقدمة
const options = {
sensitivity: "base",
ignorePunctuation: true,
numeric: true,
};
ال options
يحدد الكائن خيارات المقارنة المحلية. إليك بعض الأشياء المهمة التي يجب معرفتها:
-
تحدد الخاصية الرقمية ما إذا كان ينبغي التعامل مع الأرقام كأرقام بدلاً من السلاسل. إذا تم تعيين هذه الخاصية على FALSE ، فسيأتي “sheet1” و “sheet10” قبل “sheet2”.
-
تحدد خاصية التجاهل ما إذا كان ينبغي تجاهل المساحات والأقواس وغيرها من علامات الترقيم أثناء المقارنة. إذا تم تعيين هذه الخاصية على False ، فسيتم التعامل مع “الورقة 1” و “Sheet1” كورقة مختلفة.
-
تحدد خاصية الحساسية ما إذا كانت المقارنة يجب أن تكون حساسة للحالة أو غير حساسة للحالة. اضبط هذه الخاصية على “لهجة” لعلاج الأحرف الأساسية والأحرف المعلنة بشكل مختلف (سيتم التعامل مع الورقة A و Sheet à كورقة مختلفة).
فرز أوراق Google حسب التاريخ
إذا كانت أسماء الألواح الخاصة بك تحتوي على تواريخ ، مثل “March 2023” أو “01/03/23” ، فستحتاج إلى تحويل التواريخ إلى الأرقام قبل مقارنتها.
const compareFn = (sheet1, sheet2) => {
return ascending
? new Date(sheet1.getName()).getTime() - new Date(sheet2.getName()).getTime()
: new Date(sheet2.getName()).getTime() - new Date(sheet1.getName()).getTime();
};
مراجع
اكتشاف المزيد من مرابع التكنولوجيا
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.