كيفية التنسيق التلقائي لردود نماذج Google في جداول بيانات Google

عند إرسال نموذج Google، فإنه يخزن نسخة من استجابة النموذج كصف جديد في ورقة Google. المشكلة الوحيدة هنا هي أن نماذج Google لن تضيف أي تنسيقات أو أنماط إلى الصف الجديد التي ربما قمت بتطبيقها على الصفوف السابقة من الورقة. اسمحوا لي أن أوضح هذا بمثال صغير.
إليك ورقة Google التي تخزن استجابات نموذج Google. لقد قمت بتغيير عائلة الخطوط الافتراضية إلى Droid Sans
، بمحاذاة عمود البلد والعمر إلى المنتصف، كما تم تطبيق تنسيق تاريخ مختلف على Date of Birth
عمود.
يبدو كل شيء على ما يرام، ولكن بمجرد تقديم نموذج جديد، سيفقد الصف الجديد المُلحق بورقة Google عبر نماذج Google كل التنسيق.
لا يتم الحفاظ على محاذاة الخلية، ويتم تجاهل تنسيقات التاريخ المخصصة وكذلك حجم الخط الافتراضي وعائلة الخطوط. إليك لقطة شاشة لنفس الورقة ولكن مع إضافة صف جديد من خلال نماذج Google.
راجع أيضًا: أتمتة نماذج Google من خلال سير العمل
التنسيق التلقائي للصفوف الجديدة في جداول بيانات Google
نظرًا لعدم وجود طريقة لنا لتجاوز سلوك نماذج Google هذا، يمكننا الاستعانة بمساعدة Google Apps Script لتنسيق الصفوف الجديدة تلقائيًا في جداول بيانات Google التي تتم إضافتها من خلال نماذج Google.
الفكرة بسيطة. سنقوم بإنشاء onFormSubmit
مشغل داخل ورقة Google والذي سيتم تنفيذه عند إرسال نموذج جديد. سيأخذ هذا المشغل أي تنسيق تم تطبيقه على الصف السابق وسيطبق على الصف الحالي.
للبدء، افتح ورقة Google وقم بتنسيق الصف الأخير بالأنماط التي ترغب في تطبيقها على استجابات النماذج الواردة.
بعد ذلك، انتقل إلى قائمة الإضافات > Apps Script وانسخ والصق Google Script أدناه. تشغيل createTrigger
وأنت على ما يرام!
/**
* @OnlyCurrentDoc
*/
const createTrigger = () => {
ScriptApp.getProjectTriggers().forEach((trigger) => {
ScriptApp.deleteTrigger(trigger);
});
ScriptApp.newTrigger('formRowOnFormSubmit').forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
};
const formRowOnFormSubmit = (e) => {
if (!e) {
throw new Error('Please do not run this function manually!');
}
const { range } = e;
const row = range.getRowIndex();
if (row > 2) {
const sheet = range.getSheet();
// Select the previous row range
const sourceRange = sheet.getRange(`${row - 1}:${row - 1}`);
// Get the recently added row
const targetRange = sheet.getRange(`${row}:${row}`);
// Copy the format only from the previous row to the current row
sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
}
};
التنسيق الشرطي في جداول بيانات Google
تعرف على المزيد حول التنسيق الشرطي في جداول بيانات Google والذي يسمح لك بتطبيق التنسيق التلقائي على الخلايا في جداول البيانات التي تستوفي معايير معينة.