מתבצעת הרחבה של Google Sheets

Google Apps Script מאפשר לכם לעשות דברים חדשים ומגניבים באמצעות Google Sheets. אפשר להשתמש ב-Apps Script כדי להוסיף ל-Google Sheets תפריטים מותאמים אישית, תיבות דו-שיח וסרגלי צד. הוא גם מאפשר לכתוב פונקציות מותאמות אישית ל-Sheets, וגם לשלב את Sheets עם שירותי Google אחרים, כמו יומן, Drive ו-Gmail.

רוב הסקריפטים שמיועדים ל-Google Sheets משפיעים על מערכים כדי לבצע אינטראקציה עם התאים, השורות והעמודות בגיליון האלקטרוני. אם אתם לא מכירים מערכים ב-JavaScript, Codecademy מציע מודול אימון מעולה למערכים. (לתשומת ליבכם: Google לא פיתחה את הקורס הזה, והוא לא משויך אליה).

למבוא קצר בנושא השימוש ב-Apps Script עם Google Sheets, קראו את המדריך למתחילים: רכיבי מאקרו, תפריטים ופונקציות מותאמות אישית.

שנתחיל?

Apps Script כולל ממשקי API מיוחדים שמאפשרים ליצור, לקרוא ולערוך גיליונות אלקטרוניים ב-Google Sheets באופן פרוגרמטי. Apps Script יכול ליצור אינטראקציה עם Google Sheets בשתי דרכים רחבות: כל סקריפט יכול ליצור או לשנות גיליון אלקטרוני אם למשתמש של הסקריפט יש את ההרשאות המתאימות לגיליון האלקטרוני. כמו כן, סקריפט יכול להיות לקשור לגיליון אלקטרוני, וכך לסקריפט יש יכולות מיוחדות לשנות את ממשק המשתמש או להגיב כשהגיליון האלקטרוני נפתח. כדי ליצור סקריפט מוגבל, בוחרים באפשרות תוספים > Apps Script מתוך Google Sheets.

שירות הגיליונות האלקטרוניים מתייחס ל-Google Sheets כרשת שפועלת עם מערכים דו-ממדיים. כדי לאחזר את הנתונים מהגיליון האלקטרוני, צריך לקבל גישה לגיליון האלקטרוני שבו הנתונים מאוחסנים, למצוא בגיליון האלקטרוני את הטווח שמכיל את הנתונים ולקבל את הערכים של התאים. Apps Script מאפשר גישה לנתונים על ידי קריאת נתונים מובְנים בגיליון האלקטרוני ויצירה של אובייקטים ב-JavaScript עבורם.

קריאת נתונים

נניח שיש לכם רשימה של שמות מוצרים ומספרי מוצרים שאתם שומרים בגיליון אלקטרוני, כפי שמוצג בתמונה למטה.

הדוגמה הבאה מראה איך לאחזר ולרשום את שמות המוצרים ואת מספרי המוצרים.

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

צפייה ביומנים

כדי להציג את הנתונים שנרשמו ביומן, לוחצים על Execution log בחלק העליון של עורך הסקריפטים.

כתיבת נתונים

כדי לאחסן בגיליון הנתונים נתונים, כגון שם ומספר של מוצר חדש, עליך להוסיף את הקוד הבא בסוף הסקריפט.

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

הקוד שלמעלה מצרף שורה חדשה בתחתית הגיליון האלקטרוני, עם הערכים שצוינו. אם תפעילו את הפונקציה, תופיע שורה חדשה לגיליון האלקטרוני.

תפריטים וממשקי משתמש מותאמים אישית

תוכלו להתאים אישית את Google Sheets באמצעות הוספת תפריטים מותאמים אישית, תיבות דו-שיח וסרגלי צד. למידע הבסיסי על יצירת תפריטים, קראו את מדריך התפריטים. למידע נוסף על התאמה אישית של התוכן בתיבת דו-שיח, קראו את המדריך לשירות HTML.

ניתן גם לצרף פונקציית סקריפט לתמונה או לשרטוט בגיליון אלקטרוני. הפונקציה תופעל כאשר משתמש ילחץ על התמונה או על השרטוט. למידע נוסף, מומלץ לעיין במאמר תמונות ושרטוטים ב-Google Sheets.

אם אתם מתכננים לפרסם את הממשק המותאם אישית כחלק מתוסף, מומלץ לפעול לפי מדריך הסגנון כדי לשמור על עקביות לסגנון ולפריסה של עורך Google Sheets.

חיבור ל-Google Forms

באמצעות Apps Script תוכלו לחבר את Google Forms ל-Google Sheets דרך שירותי Forms וגיליונות אלקטרוניים. באמצעות התכונה הזו אפשר ליצור טופס ב-Google Forms באופן אוטומטי על סמך נתונים בגיליון אלקטרוני. בנוסף, ב-Apps Script אפשר להשתמש בטריגרים, כמו onFormSubmit, כדי לבצע פעולה ספציפית אחרי שמשתמש מגיב לטופס. למידע נוסף על חיבור Google Sheets ל-Google Forms, קראו את המדריך למתחילים: ניהול תגובות ב-Google Forms.

עיצוב

למחלקה Range יש שיטות כמו setBackground(color), כדי לגשת לעיצוב של תא או טווח של תאים ולשנות את העיצוב שלו. הדוגמה הבאה מראה איך להגדיר את סגנון הגופנים בטווח:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

אימות נתונים

ב-Apps Script אפשר לגשת לכללי אימות קיימים של נתונים ב-Google Sheets או ליצור כללים חדשים. לדוגמה, הדוגמה הבאה מראה איך להגדיר כלל אימות נתונים שמאפשר רק מספרים בין 1 ל-100 בתא.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

למידע נוסף על עבודה עם כללים לאימות נתונים: SpreadsheetApp.newDataValidation(), DataValidationBuilder ו-Range.setDataValidation(rule)

מצעדים

ב-Apps Script אפשר להטמיע תרשימים בגיליון אלקטרוני שמייצג את הנתונים בטווח מסוים. הדוגמה הבאה יוצרת תרשים עמודות מוטמע, בהנחה שיש נתונים שניתן ליצור בתרשים בתאים A1:B15:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

למידע נוסף על הטמעת תרשים בגיליון האלקטרוני, מומלץ לעיין במאמר EmbeddedChart ובכלים ספציפיים לבניית תרשימים, כמו EmbeddedPieChartBuilder.

פונקציות בהתאמה אישית ב-Google Sheets

פונקציה בהתאמה אישית דומה לפונקציה מובנית בגיליון אלקטרוני כמו =SUM(A1:A5), אלא שאתם מגדירים את התנהגות הפונקציות באמצעות Apps Script. לדוגמה, אפשר ליצור פונקציה מותאמת אישית, in2mm(), שממירה ערך מאינצ'ים למילימטרים, ואז להקליד בתאים =in2mm(A1) או =in2mm(10) באמצעות הנוסחה בגיליון האלקטרוני.

מידע נוסף על פונקציות בהתאמה אישית זמין במאמר תפריטים ופונקציות בהתאמה אישית במדריך למתחילים (5 דקות), או במדריך המפורט יותר לפונקציות בהתאמה אישית.

פקודות מאקרו

רכיבי מאקרו הם דרך נוספת להפעלת קוד של Apps Script מממשק המשתמש של Google Sheets. בשונה מפונקציות מותאמות אישית, אפשר להפעיל אותן באמצעות מקש קיצור או דרך התפריט של Google Sheets. למידע נוסף, קראו את המאמר רכיבי מאקרו ב-Google Sheets.

תוספים ל-Google Sheets

תוספים הם פרויקטים בחבילה של Apps Script שרצים ב-Google Sheets ואפשר להתקין אותם מחנות התוספים של Google Sheets. אם פיתחתם סקריפט ל-Google Sheets ואתם רוצים לשתף אותו עם העולם, ב-Apps Script תוכלו publish את הסקריפט כתוסף, כדי שמשתמשים אחרים יוכלו להתקין אותו מחנות התוספים.

גורמים מפעילים

בסקריפטים שמקושרים לקובץ של Google Sheets אפשר להשתמש בטריגרים פשוטים, כמו הפונקציות onOpen() ו-onEdit(), כדי להגיב באופן אוטומטי כשמשתמש שיש לו גישת עריכה בגיליון האלקטרוני פותח או עורך את הגיליון האלקטרוני.

בדומה לטריגרים פשוטים, טריגרים שניתנים להתקנה מאפשרים ל-Google Sheets להריץ פונקציה באופן אוטומטי כשאירוע מסוים מתרחש. עם זאת, מפעילי הטריגרים שניתנים להתקנה נותנים יותר גמישות מאשר טריגרים פשוטים ותומכים באירועים הבאים: פתיחה, עריכה, שינוי, שליחת טופס ומבוסס-זמן (שעון).