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

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

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

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

שנתחיל?

Apps Script כולל ממשקי API מיוחדים שמאפשרים ליצור, לקרוא ולערוך Google Sheets באופן פרוגרמטי. אפשר לנהל אינטראקציה עם Google Sheets באמצעות Apps Script בשתי דרכים כלליות: כל סקריפט יכול ליצור או לשנות גיליון אלקטרוני אם למשתמש בסקריפט יש הרשאות מתאימות לגיליון האלקטרוני. כמו כן, סקריפט יכול להיות מקושר לגיליון אלקטרוני, שמעניק לסקריפט יכולות מיוחדות לשנות את ממשק המשתמש או להגיב כשהגיליון האלקטרוני נפתח. כדי ליצור סקריפט קשור, בוחרים ב-תוספים > 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]);
  }
}

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

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

בתהליך כתיבת נתונים

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

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, כדאי לעיין במדריך למתחילים של 5 דקות בניהול תשובות ל-Google Forms.

עיצוב

למחלקה Range יש methods כמו 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) בתא כדי להשתמש בנוסחה בגיליון האלקטרוני.

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

פקודות מאקרו

פקודות מאקרו הן דרך נוספת להפעיל קוד 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 להריץ פונקציה באופן אוטומטי כשאירוע מסוים מתרחש. עם זאת, טריגרים שאפשר להתקין הם גמישים יותר מטריגרים פשוטים, והם תומכים באירועים הבאים: פתיחה, עריכה, שינוי, שליחת טופס והגדרה מבוססת זמן (שעון).