تقنية

كيفية تنسيق ردود نماذج 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 من خلال سير العمل



Source link

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى