במאמר הזה נסביר את העקרונות הבסיסיים של השימוש במשאב spreadsheets.values.
בגיליונות אלקטרוניים יכולים להיות כמה גיליונות, ובכל גיליון יכולים להיות מספר שורות או עמודות. תא הוא מיקום בצומת של שורה ועמודה מסוימות, והוא יכול להכיל ערך נתונים. Google Sheets API מספק את המשאב spreadsheets.values כדי לאפשר קריאה וכתיבה של ערכים.
אם אתם צריכים להוסיף שורות או לעדכן את העיצוב ומאפיינים אחרים בגיליון, אתם צריכים להשתמש בשיטה batchUpdate של מקור המידע spreadsheets, כמו שמתואר במאמר עדכון גיליונות אלקטרוניים.
שיטות של משאבים
במשאב spreadsheets.values יש את השיטות הבאות לקריאה ולכתיבה של ערכים, כל אחת למשימה ספציפית:
| גישה לטווח | קריאה | כתיבה |
|---|---|---|
| טווח יחיד | spreadsheets.values.get |
spreadsheets.values.update |
| כמה טווחים | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
| הוספה | spreadsheets.values.append |
באופן כללי, מומלץ לשלב כמה קריאות או עדכונים באמצעות השיטות batchGet ו-batchUpdate (בהתאמה), כי זה משפר את היעילות.
דוגמאות קוד לכל אחת מהשיטות האלה מופיעות בדפים דוגמאות בסיסיות לקריאה ודוגמאות בסיסיות לכתיבה. כדי לראות את כל דוגמאות הקוד, אפשר לעיין בדף הסקירה הכללית של הדוגמאות.
קריאת ערכי תאים
כדי לקרוא ערכי נתונים מגיליון, צריך את מזהה הגיליון האלקטרוני ואת סימון A1 לטווח. אם מציינים את הטווח בלי מזהה הגיליון (A1:B2), הבקשה מופעלת בגיליון הראשון בגיליון האלקטרוני. מידע נוסף על מזהי גיליונות אלקטרוניים ועל סימון A1 זמין בסקירה הכללית של Google Sheets API.
יש כמה פרמטרים אופציונליים של שאילתה ששולטים בפורמט של הפלט:
| פרמטר של עיצוב | ערך ברירת המחדל |
|---|---|
majorDimension |
ROWS |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
חשוב לזכור: אתם צריכים להשתמש ב-dateTimeRenderOption רק אם valueRenderOption
לא FORMATTED_VALUE.
אין הגבלה מפורשת על כמות הנתונים שמוחזרת. אם יש שגיאות, לא מוחזרים נתונים. שורות ועמודות ריקות בסוף הטבלה לא נכללות.
בקטעים הבאים מתוארות השיטות singular ו-batch get. דוגמאות נוספות לקוד של פעולות קריאה בסיסיות מופיעות במאמר קריאה בסיסית.
קריאת ערכים מטווח יחיד
כדי לקרוא טווח יחיד של ערכים מגיליון אלקטרוני, משתמשים בבקשה spreadsheets.values.get:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
התשובה לבקשה הזו מוחזרת כאובייקט ValueRange שהוא חלק מהמשאב spreadsheets.values.
קריאת ערכים מכמה טווחים
כדי לקרוא כמה טווחים של ערכים לא רציפים מגיליון אלקטרוני, משתמשים בבקשת spreadsheets.values.batchGet שמאפשרת לציין כמה טווחים לאחזור:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
התשובה לבקשה הזו מוחזרת כאובייקט BatchGetValuesResponse שמכיל את spreadsheetId ורשימה של אובייקטים מסוג ValueRange.
כתיבה של ערכי תאים
כדי לכתוב לגיליון, צריך את מזהה הגיליון האלקטרוני, את טווח התאים בסימון A1 ואת הנתונים שרוצים לכתוב באובייקט מתאים של גוף הבקשה. מידע נוסף על מזהי גיליונות אלקטרוניים ועל סימון A1 זמין במאמר סקירה כללית על Google Sheets API.
יש כמה פרמטרים של שאילתות שקובעים איך הנתונים נכתבים ואיך התגובה מעוצבת:
| כתיבת פרמטר | ערך ברירת המחדל |
|---|---|
valueInputOption |
(חובה) |
includeValuesInResponse |
false |
responseValueRenderOption |
FORMATTED_VALUE |
responseDateTimeRenderOption |
SERIAL_NUMBER |
הפרמטר הנדרש valueInputOption קובע איך צריך לפרש את נתוני הקלט. (בעדכונים בכמות גדולה, הפרמטר הזה מצוין בגוף הבקשה). האפשרויות הנתמכות מתוארות בטבלה הבאה:
ValueInputOption |
תיאור |
|---|---|
RAW |
הקלט לא מנותח ומוסיפים אותו כמחרוזת. לדוגמה, אם מזינים את הקלט =1+2, המחרוזת =1+2 מוצבת בתא, ולא הנוסחה. (ערכים שאינם מחרוזות, כמו ערכים בוליאניים או מספרים, תמיד מטופלים כ-RAW). |
USER_ENTERED |
הקלט מנותח בדיוק כמו שהוא מוזן לממשק המשתמש של Sheets. לדוגמה, המחרוזת 'Mar 1 2016' הופכת לתאריך, והמחרוזת '=1+2' הופכת לנוסחה. אפשר גם להסיק את הפורמט, כך שהערך "$100.15" הופך למספר עם עיצוב של מטבע. |
חשוב לזכור: אתם צריכים להשתמש ב-responseDateTimeRenderOption רק אם responseValueRenderOption לא FORMATTED_VALUE.
בקטעים הבאים מתוארות השיטות לעדכון פריט יחיד ולעדכון קבוצת פריטים. דוגמאות נוספות לקוד של פעולות כתיבה בסיסיות מופיעות במאמר בנושא כתיבה בסיסית.
כתיבת ערכים לטווח יחיד
כדי לכתוב נתונים לטווח יחיד, משתמשים בבקשת spreadsheets.values.update:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
גוף בקשת העדכון חייב להיות אובייקט ValueRange, אבל שדה החובה היחיד הוא values. אם מציינים את הערך range, הוא חייב להתאים לטווח בכתובת ה-URL. ב-ValueRange, אפשר לציין את majorDimension.
כברירת מחדל, נעשה שימוש ב-ROWS. אם מציינים את COLUMNS, כל מערך פנימי נכתב בעמודה במקום בשורה.
כשמעדכנים, המערכת מדלגת על ערכים ללא נתונים. כדי לנקות נתונים, משתמשים במחרוזת ריקה (""). אפשר גם לנקות ערכים מכמה טווחים בלי להחליף אותם באמצעות השיטה spreadsheets.values.batchClear.
אם אתם משתמשים במטא-נתונים של מפתחים, תוכלו לעיין במדריך למטא-נתונים של מפתחים כדי לקבל מידע על שימוש במסנני נתונים לקריאה, לעדכון או לניקוי של ערכים באמצעות השיטות spreadsheets.values.batchGetByDataFilter, spreadsheets.values.batchUpdateByDataFilter ו-spreadsheets.values.batchClearByDataFilter.
כתיבת ערכים לכמה טווחים
אם רוצים לכתוב כמה טווחים לא רציפים, אפשר להשתמש בבקשה spreadsheets.values.batchUpdate:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
גוף הבקשה לחבילת עדכונים חייב להיות אובייקט BatchUpdateValuesRequest שמכיל ValueInputOption ורשימה של אובייקטים ValueRange (אחד לכל טווח שנכתב). כל אובייקט ValueRange מציין את range, majorDimension ונתוני הקלט שלו.
הוספת ערכים
כדי להוסיף נתונים אחרי טבלת נתונים בגיליון, משתמשים בבקשת spreadsheets.values.append:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
גוף בקשת העדכון חייב להיות אובייקט ValueRange, אבל שדה החובה היחיד הוא values. אם מציינים את הערך range, הוא חייב להתאים לטווח בכתובת ה-URL. ב-ValueRange, אפשר לציין את majorDimension.
כברירת מחדל, נעשה שימוש ב-ROWS. אם מציינים את COLUMNS, כל מערך פנימי נכתב בעמודה במקום בשורה.
טווח הקלט משמש לחיפוש נתונים קיימים ולמציאת 'טבלה' בטווח הזה. הערכים מתווספים לשורה הבאה בטבלה, החל מהעמודה הראשונה בטבלה. לדוגמה, נניח שיש לכם את הנתונים הבאים Sheet1:
| A | ב | C | D | E | |
| 1 | x | y | z | ||
| 2 | x | y | z | ||
| 3 | |||||
| 4 | x | y | |||
| 5 | y | z | |||
| 6 | x | y | z | ||
| 7 |
יש שני גיליונות בגיליון האלקטרוני: A1:C2 ו-B4:D6. הערכים המצורפים יתחילו ב-B7 לכל ערכי הקלט הבאים של range:
-
Sheet1, כי הוא יבדוק את כל הנתונים בגיליון ויקבע שהטבלה ב-B4:D6היא הטבלה האחרונה. B4אוC5:D5, כי שניהם נמצאים בטבלהB4:D6.-
B2:D4, כי הטבלה האחרונה בטווח היא הטבלהB4:D6(למרות שהיא מכילה גם את הטבלהA1:C2). -
A3:G10, כי הטבלה האחרונה בטווח היא הטבלהB4:D6(למרות שהיא מתחילה לפני ומסתיימת אחרי).
הקלט הבא range לא התחיל לכתוב בשעה B7:
-
A1יתחיל לכתוב ב-A3, כי זה נמצא בטבלהA1:C2. -
E4יתחיל לכתוב ב-E4, כי הוא לא נמצא באף טבלה. (A4יתחיל לכתוב גם ב-A4מאותן סיבות).
בנוסף, אפשר לבחור אם רוצים להחליף נתונים קיימים אחרי טבלה או להוסיף שורות חדשות לנתונים החדשים. כברירת מחדל, הקלט מחליף את הנתונים אחרי הטבלה. כדי לכתוב את הנתונים החדשים בשורות חדשות, משתמשים ב-InsertDataOption ומציינים insertDataOption=INSERT_ROWS.
מידע נוסף על מגבלות התאים והשורות ב-Sheets זמין במאמר קבצים שאפשר לאחסן ב-Google Drive.