הרחבת גיליון אלקטרוני ב-Google Sheets באמצעות תוספים
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
Google Sheets הוא פתרון לגיליונות אלקטרוניים מבוסס-ענן עם שיתוף פעולה בזמן אמת וכלים רבי עוצמה להדמיה, לעיבוד ולתקשור של נתונים.
אפשר להרחיב את Sheets באמצעות תוספים שמשפרים את תהליכי העבודה, יוצרים קישוריות למערכות של צד שלישי ומשלבים את הנתונים ב-Sheets עם אפליקציות אחרות של Google Workspace (כמו Google Slides).
הנה כמה דברים שאפשר לעשות באמצעות תוסף שמרחיב את Google Sheets:
אפשר לקרוא, לערוך, להמחיש ולעצב נתונים בגיליונות אלקטרוניים של Google Sheets באמצעות שירות הגיליונות האלקטרוניים המובנה של Apps Script.
השירות מאפשר גם ליצור ולשנות כללים של עיצוב מותנה ואימות נתונים.
אתם יכולים להשתמש בטריגרים של תוספים שמריצים פונקציות ספציפיות כשמתרחשים אירועים מסוימים.
תוספים ל-Sheets נבנים באמצעות Apps Script. מידע נוסף על גישה ל-Google Sheets וניהול שלהם באמצעות Apps Script זמין במאמר הרחבת Google Sheets.
מבנה הגיליון
גיליון אלקטרוני ב-Google Sheets מורכב מגיליון אחד או יותר. כל גיליון הוא בעצם רשת דו-ממדית של תאים שאפשר לאחסן בהם טקסט, מספרים, קישורים או ערכים אחרים. קבוצה של תא אחד או יותר סמוכים נקראת טווח.
Spreadsheet service של Apps Script מספק כמה מחלקות לייצוג מבנים ארגוניים ב-Sheets (כמו Sheet ו-Range). אפשר להשתמש במחלקות האלה כדי לקרוא ולשנות את הנתונים וההתנהגות של Sheets.
טריגרים
טריגרים ב-Apps Script מאפשרים להריץ פונקציה מסוימת בפרויקט סקריפט כשמתקיימים תנאים מסוימים, למשל כשפותחים גיליון אלקטרוני או כשמתקינים תוסף.
מידע נוסף על הטריגרים שאפשר להשתמש בהם בתוספים של Sheets ועל ההגבלות שחלות על השימוש בהם זמין במאמר בנושא טריגרים של תוספים.
פונקציות מותאמות אישית
ב-Google Sheets יש מספר פונקציות מובנות כמו SUM ו-AVERAGE שאפשר להפעיל מתוך תא ב-Google Sheets.
תוספים ל-Sheets יכולים להגדיר פונקציות מותאמות אישית בנוסף לפונקציות המובנות האלה. כשמשתמש מתקין את התוסף, כל הפונקציות המותאמות אישית שמוגדרות בו זמינות באופן מיידי. יכול להיות שתוסף יכלול רק הגדרות של פונקציות בהתאמה אישית. הדרך העיקרית לשתף עם אחרים הגדרות של פונקציות מותאמות אישית היא לפרסם תוסף שמכיל את ההגדרות.
יצירת פונקציות מותאמות אישית לתוספים
אפשר להשתמש בכל פונקציה שמוגדרת בפרויקט של סקריפט תוסף כפונקציה בהתאמה אישית. אחרי שמטמיעים את הפונקציה ומתקינים את התוסף, אפשר להפעיל את הפונקציה המותאמת אישית כמו כל פונקציה מובנית אחרת ב-Sheets: בתא בגיליון, מזינים את = ואחריו את שם הפונקציה ואת הפרמטרים הנדרשים. אם אין שגיאות, התוצאה שמוחזרת על ידי הפונקציה מוצבת בתא בגיליון, ואם צריך היא גולשת לתאים הסמוכים.
כשיוצרים פונקציות בהתאמה אישית בתוסף, צריך לפעול לפי ההנחיות הכלליות לגבי פונקציות בהתאמה אישית:
בנוסף, יש כמה שיקולים מיוחדים לגבי פונקציות מותאמות אישית שמוגדרות בתוספים:
כשנותנים שם לפונקציה, כדאי ליצור שם ייחודי, שאולי קשור לשם של התוסף. אם שני תוספים מותקנים או יותר מגדירים פונקציות מותאמות אישית עם אותו שם, המשתמשים יכולים להשתמש רק באחת מהן.
חשוב לציין בבירור אילו פונקציות מותאמות אישית התוסף מספק.
חשוב לספק תגובות JSDoc מדויקות לפונקציות המותאמות אישית, כדי ש-Apps Script יוכל להציג למשתמש מידע על השלמה אוטומטית. בנוסף, מומלץ לספק תיעוד נוסף של הפונקציות המותאמות אישית בתוסף עצמו או בדף אינטרנט לתמיכה בתוסף.
פונקציות בהתאמה אישית שלא מסתיימות תוך פחות מ-30 שניות נכשלות עם שגיאת Internal error executing the custom function. כדי ליצור חוויית משתמש טובה, כדאי להגביל את כמות העיבוד שמבצעים בפונקציה מותאמת אישית.
מבצעים אופטימיזציה לפונקציה ככל האפשר.
פונקציות בהתאמה אישית לא יכולות להשתמש בשירותי Apps Script שדורשים הרשאה, ואם מנסים לעשות זאת, הן נכשלות עם השגיאה You do not have permission to call X service. אפשר להשתמש בפונקציה בהתאמה אישית רק בשירותים המותרים.
כל פונקציה מותאמת אישית בגיליון יוצרת קריאה נפרדת לשרתים של Apps Script. אם משתמש מנסה להשתמש בפונקציות בהתאמה אישית ביותר מדי תאים, יכול להיות שהפונקציות יפעלו לאט. כדי לצמצם את הסיכון הזה, כדאי להשתמש בפונקציות מותאמות אישית פשוטות ככל האפשר. אם אתם צריכים שהפונקציה תבצע עיבוד מורכב או ממושך, אל תשתמשו בפונקציה בהתאמה אישית – במקום זאת, ספקו את הפונקציונליות הזו באמצעות אינטראקציה עם פריט בתפריט, תיבת דו-שיח או סרגל צד.
פקודות מאקרו ב-Sheets
פונקציות מאקרו מאפשרות להקליט פעולות שבוצעו ב-Google Sheets ולחזור עליהן מאוחר יותר באמצעות מקש קיצור. כשיוצרים מאקרו בגיליון, הוא נוסף כפונקציית מאקרו בפרויקט Apps Script שמקושר לגיליון הזה. מידע נוסף על מאקרו זמין במאמר בנושא מאקרו ב-Google Sheets.
לצערנו, אי אפשר להפיץ פקודות מאקרו של Sheets עם תוספים. אם כוללים הגדרת מאקרו במניפסט של תוסף, היא לא זמינה למשתמשים בתוסף הזה.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-31 (שעון UTC)."],[[["\u003cp\u003eGoogle Sheets add-ons enhance spreadsheets with custom workflows, external system connections, and integration with other Google Workspace apps.\u003c/p\u003e\n"],["\u003cp\u003eAdd-ons, built using Apps Script, enable data manipulation, custom menus, dialogs, and functions, triggered by specific events.\u003c/p\u003e\n"],["\u003cp\u003eCustom functions extend Google Sheets' built-in formulas, accessible directly within cells, but require adherence to naming and usage guidelines.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Sheet add-ons provide extended functionality but cannot currently distribute or utilize pre-recorded macros.\u003c/p\u003e\n"]]],["Google Sheets add-ons, built with Apps Script, extend functionality by allowing users to read, edit, visualize, and format data. They can access the Google Sheets API, create custom menus, dialogs, sidebars, and custom functions. Add-ons can also use triggers to run functions on specific events. Custom functions, when created within an add-on, become immediately available to users after installation, following specific naming and usage guidelines. Macros, while recordable actions in Sheets, are not distributable with add-ons.\n"],null,["[Google Sheets](https://workspace.google.com/products/sheets/) is a cloud-based\nspreadsheet solution with real-time collaboration and powerful tools to\nvisualize, process and communicate data.\n\nYou can extend Sheets with add-ons that build customized workflow improvements,\nestablish connectivity to third-party systems, and integrate your Sheets data\nwith other Google Workspace applications (like\nGoogle Slides).\n\nYou can see the Sheets add-ons others have built on the\n[Google Workspace Marketplace](https://workspace.google.com/marketplace/category/works-with-spreadsheet).\n\nWhat you can do\n\nHere are a few things you can do with an add-on that extends Google Sheets:\n\n- You can read, edit, visualize, and format data in Google Sheets spreadsheets using the built-in Apps Script [Spreadsheet service](/apps-script/reference/spreadsheet). The service also lets you create and modify conditional formatting and data validation rules.\n- You can use the Apps Script [advanced Sheets service](/apps-script/advanced/sheets) to access the [Google Sheets API](/workspace/sheets/api) directly.\n- You can create [custom menus](/workspace/add-ons/concepts/menus) and define multiple [custom dialogs and sidebars](/workspace/add-ons/concepts/dialogs) interfaces using standard HTML and CSS.\n- You can include [custom function](#custom_functions) definitions in your add-on.\n- You can use add-ons [triggers](#triggers) that run specified functions when certain triggering events occur.\n\nSheets add-ons are built using Apps Script. To learn more about how to access\nand manage Google Sheets with Apps Script, see\n[Extending Google Sheets](/apps-script/guides/sheets).\n\nSheet structure\n\nA Google Sheets spreadsheet consists of one or more sheets. Each sheet is\nessentially a 2D grid of cells into which text, numbers, links, or other\nvalues can be stored. A group of one or more adjacent cells is called a\n*range*.\n\nThe Apps Script [Spreadsheet service](/apps-script/reference/spreadsheet)\nprovides several classes to represent organizational structures in Sheets\n(such as [`Sheet`](/apps-script/reference/spreadsheet/sheet) and\n[`Range`](/apps-script/reference/spreadsheet/range)). You can use these\nclasses to read and modify Sheets data and behavior.\n\nTriggers\n\nApps Script [triggers](/workspace/add-ons/concepts/editor-triggers) let a script project\nexecute a specified function when certain conditions are met, such as when a\nspreadsheet is opened or when an add-on is installed.\n\nSee [add-on triggers](/workspace/add-ons/concepts/editor-triggers) for more information\non what triggers can be used with Sheets add-ons and what restrictions apply\nto their use.\n\nCustom functions\n\nGoogle Sheets has a number of\n[built-in functions](https://support.google.com/docs/table/25273?ref_topic=1361471)\nlike `SUM` and `AVERAGE` that can be invoked from within a Google Sheet cell.\nSheets add-ons can define additional\n[custom functions](/apps-script/guides/sheets/functions) to supplement these\nbuilt-in functions. When a user\ninstalls the add-on, any defined custom functions included with the add-on\nbecome available immediately. It is possible for an add-on to consist of\nonly custom function definitions. Custom function definitions are primarily\nshared with others by publishing an add-on containing the definitions.\n\nCreating add-on custom functions\n\nAny function defined in an add-on script project can be used as a custom\nfunction. Once the function is implemented and the add-on is installed, you\ncan call the custom function like any other built-in Sheets function: in a\nSheet cell, enter the `=` followed by the name of the function and any required\nparameters. If there are no errors, the result returned by the function is\nplaced in the Sheet cell, overflowing to neighboring cells as necessary.\n\nWhen creating custom functions in an add-on you should follow\nthe general custom function guidelines:\n\n- [Function naming guidelines](/apps-script/guides/sheets/functions#naming)\n- [Defining function arguments](/apps-script/guides/sheets/functions#arguments)\n- [Defining the function return value](/apps-script/guides/sheets/functions#return_values)\n- [Custom function data types](/apps-script/guides/sheets/functions#data_types)\n- [Enabling autocomplete using JSDoc](/apps-script/guides/sheets/functions#autocomplete)\n- [Services custom functions can use](/apps-script/guides/sheets/functions#using_apps_script_services)\n- [Optimizing custom functions](/apps-script/guides/sheets/functions#optimization)\n\nIn addition, custom functions defined in add-ons have some special\nconsiderations:\n\n- When naming your function, try to create a unique name, perhaps related to the name of your add-on. If two or more installed add-ons define custom functions with the same name, users can only use one of them.\n- Your add-on should clearly communicate what custom functions it provides. Be sure to provide accurate JSDoc comments for your custom functions so that Apps Script can present [autocomplete](/apps-script/guides/sheets/functions#autocomplete) information to the user. In addition, consider providing additional documentation of the custom functions either in the add-on itself or on an add-on support web page.\n- Custom functions that don't complete in under 30 seconds fail with an `Internal error executing the custom function` error. Build a good user experience by limiting the amount of processing you do in a custom function. [Optimize](/apps-script/guides/sheets/functions#optimization) the function where you can.\n- Custom functions can't use Apps Script services that require authorization, and fail with a `You do not have permission to call X service` error if this is attempted. Only use the [permitted services](/apps-script/guides/sheets/functions#using_apps_script_services) in your custom function.\n- Each custom function in a sheet results in a separate call to the Apps Script servers. If a user attempts to use custom functions in too many cells, the functions may execute slowly. To mitigate this, keep your custom functions as simple as possible. If you need the function to perform complex or extended processing, don't use a custom function---provide that functionality via a menu item, dialog, or sidebar interaction instead.\n\nSheets macros\n\n[Macros](https://support.google.com/docs/answer/7665004) let you record actions\ntaken in Google Sheets and repeat them later with a keyboard shortcut. When a\nmacro is created in a sheet, it is added as a *macro function* in an Apps\nScript project [bound](/apps-script/guides/bound) to that sheet. For more\ninformation about macros, see\n[Google Sheets macros](/apps-script/guides/sheets/macros).\n\nUnfortunately, Sheets macros *can't* be distributed with add-ons. If you include\na macro definition in an add-on's manifest, it is unavailable to users of that\nadd-on."]]