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

عندما يرسل شخص ما استجابة جديدة لنموذج Google، تتم إضافة إجابات النموذج تلقائيًا كصف جديد في ورقة Google المرتبطة بالنموذج. المشكلة الوحيدة هنا هي أن نماذج Google لن تضيف أي تنسيقات أو أنماط إلى الصف الجديد التي ربما قمت بتطبيقها على الصفوف السابقة من الورقة.
اسمحوا لي أن أوضح هذا مع مثال.
إليك لقطة شاشة لورقة Google التي تخزن استجابات نموذج Google. لقد قمت بتغيير عائلة الخطوط الافتراضية إلى Droid Sans
، بمحاذاة عمود البلد والعمر إلى المنتصف، كما تم تطبيق تنسيق تاريخ مختلف على Date of Birth
عمود.
يبدو التنسيق جيدًا، ولكن بمجرد تلقي عمليات إرسال نموذج Google جديدة، سيفقد صف الاستجابة الجديد المُلحق بورقة Google جميع التنسيقات المطبقة على الصفوف السابقة.
كما ترون في لقطة الشاشة أدناه، لا يتم الحفاظ على محاذاة الخلية، ويتم تجاهل تنسيقات التاريخ المخصصة وكذلك حجم الخط الافتراضي وعائلة الخطوط.
التنسيق التلقائي للصفوف الجديدة في جداول بيانات Google
نظرًا لعدم وجود طريقة لنا لتجاوز سلوك نماذج Google هذا، فيمكننا الاستعانة بمساعدة Google Apps Script لتنسيق الصفوف الجديدة تلقائيًا في جداول بيانات Google التي تتم إضافتها من خلال نماذج Google.
للبدء، افتح ورقة Google وقم بتنسيق الصف الأخير بالأنماط التي ترغب في تطبيقها على استجابات النماذج الواردة. يرجى التأكد من وجود استجابة نموذجية واحدة على الأقل في ورقة Google حيث يمكنك تطبيق التنسيق المطلوب الذي تريد تطبيقه على الصفوف الجديدة.
أضف Google Apps Script إلى ورقة Google
بعد ذلك، انتقل إلى قائمة الإضافات > البرامج النصية للتطبيقات داخل جداول بيانات Google وانسخ والصق برنامج Google النصي أدناه.
/**
* @OnlyCurrentDoc
*/
const formatRowOnFormSubmit = formEvent => {
try {
const { range } = formEvent || {};
if (!range) throw new Error("This function should only be triggered by form submissions");
const sheet = range.getSheet();
const currentRow = range.getRowIndex();
const endColumn = sheet.getLastColumn();
// Skip formatting if this is the first or second row
if (currentRow <= 2) return;
// Copy formatting from previous row to new row
const sourceRange = sheet.getRange(currentRow - 1, 1, 1, endColumn);
sourceRange.copyFormatToRange(sheet, 1, endColumn, currentRow, currentRow);
} catch (error) {
console.error(`Error formatting new response: ${error.message}`);
}
};
احفظ البرنامج النصي. بعد ذلك، سنقوم بإنشاء onFormSubmit
المشغل داخل ورقة Google التي ستنفذ formatRowOnFormSubmit
تعمل كلما تم تقديم نموذج جديد. سيأخذ هذا المشغل أي تنسيق تم تطبيقه على الصف السابق وسيطبقه على الصف الحالي.
لإنشاء المشغل، انتقل إلى Triggers
القسم في الشريط الجانبي وانقر فوق + Add Trigger
. تحت Event type
القائمة المنسدلة، حدد On form submit
وحفظ الزناد. هذا كل شيء!
استخدم الإصدار السابق من البرنامج النصي
copyTo
طريقة نسخ التنسيق في حين يعمل هذا النهج، الحاليcopyFormatToRange
تعد الطريقة أكثر كفاءة لأنها مصممة خصيصًا لنسخ التنسيق بين النطاقات فقط.
const targetRange = sheet.getRange(currentRow, 1, 1, endColumn);
sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_FORMAT);
التنسيق الشرطي في جداول بيانات Google
تعرف على المزيد حول التنسيق الشرطي في جداول بيانات Google والذي يسمح لك بتطبيق التنسيق التلقائي على الخلايا في جداول البيانات التي تستوفي معايير معينة.
راجع أيضًا: أتمتة نماذج Google من خلال سير العمل