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

שנתחיל?

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

טריגרים

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

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