Google Apps Script מאפשר לכם לעשות דברים חדשים ומגניבים באמצעות Google Sheets. אפשר להשתמש ב-Apps Script כדי להוסיף תפריטים מותאמים אישית, תיבות דו-שיח וסרגלי צד ל-Google Sheets. הוא גם מאפשר לכתוב פונקציות מותאמות אישית ל-Sheets, וגם לשלב את Sheets עם שירותי Google אחרים כמו יומן, Drive ו-Gmail.
ברוב הסקריפטים שמיועדים ל-Google Sheets, מערכים מערכים כך שיתאימו לתאים, לשורות ולעמודות בגיליון האלקטרוני. אם אתם לא מכירים מערכים ב-JavaScript, ב-Codecademy יש מודול אימון מצוין למערכים. (לתשומת ליבכם: Google לא פיתחה את הקורס הזה והוא לא משויך ל-Google).
כדי לקבל מבוא קצר לשימוש ב-Apps Script עם Google Sheets, תוכלו לקרוא את המדריך למתחילים: רכיבי מאקרו, תפריטים ופונקציות בהתאמה אישית.
בוא נתחיל
Apps Script כולל ממשקי API מיוחדים שמאפשרים ליצור, לקרוא ולערוך את Google Sheets באופן פרוגרמטי. הסקריפט של Apps יכול לקיים אינטראקציה עם 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 באופן אוטומטי על סמך נתונים בגיליון אלקטרוני.
אפשר גם להשתמש בטריגרים כמו 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 להריץ פונקציה באופן אוטומטי כשמתרחש אירוע מסוים. עם זאת, מפעילי טריגרים שניתנים להתקנה גמישים יותר מטריגרים פשוטים, ותומכים באירועים הבאים: פתיחה, עריכה, שינוי, שליחת טופס ומודעה ממוקדת בזמן (שעון).