מתבצעת הרחבה של 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, אפשר לעיין במדריך למתחילים ל-Macros, Menus, and Custom Functions (פקודות מאקרו, תפריטים ופונקציות בהתאמה אישית) שאורכו 5 דקות.

שנתחיל?

‫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]);
  }
}

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

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

כתיבת נתונים

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

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 ו-Spreadsheet. התכונה הזו יכולה ליצור באופן אוטומטי טופס Google על סמך נתונים בגיליון אלקטרוני. בנוסף, אפשר להשתמש ב-Apps Script בטריגרים, כמו onFormSubmit, כדי לבצע פעולה ספציפית אחרי שמשתמש מגיב לטופס. כדי לקבל מידע נוסף על קישור Google Sheets ל-Google Forms, אפשר לנסות את המדריך המהיר לניהול תשובות ב-Google Forms (5 דקות).

עיצוב

למחלקת 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, כדי שמשתמשים אחרים יוכלו להתקין אותו מחנות התוספים.

טריגרים

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

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