Google Sheets API מאפשר לכתוב ערכים ונוסחאות לתאים, לטווחים,
קבוצות של טווחים וגיליונות שלמים. הדוגמאות בדף הזה ממחישות איך
אפשר לבצע פעולות כתיבה נפוצות באמצעות
spreadsheets.values
של Sheets API.
לתשומת ליבך, אפשר גם לכתוב ערכי תאים באמצעות
spreadsheet.batchUpdate
השיטה הזו יכולה להיות שימושית אם רוצים לעדכן בו-זמנית את העיצוב של התא
או נכסים אחרים,
spreadsheets.values
למשאב הזה אין השפעה. לדוגמה, אם רוצים להעתיק טווח של תאים מ-
בגיליון אחר, תוך החלפת נוסחת התא והתא
אפשר להשתמש בפורמט
UpdateCellsRequest
עם
spreadsheet.batchUpdate
אבל בכתיבה פשוטה של ערכים, קל יותר להשתמש
spreadsheets.values.update
או
spreadsheets.values.batchUpdate
.
הדוגמאות האלה מוצגות בצורה של בקשות HTTP ניטרלי. כדי ללמוד איך להטמיע כתיבה בשפות שונות באמצעות ספריות הלקוח של Google API, ראו קריאה כתיבת תא ערכים.
בדוגמאות האלה, ה-placeholder SPREADSHEET_ID
מציין
שבו מספקים את הגיליון האלקטרוני
את המזהה, שמופיע בקטע
כתובת ה-URL של הגיליון האלקטרוני. הטווחים שאליהם יש לכתוב מצוינים באמצעות A1
. טווח לדוגמה הוא Sheet1!A1:D5.
כתיבת טווח בודד
מתחילים מגיליון אלקטרוני חדש וריק:
spreadsheets.values.update
הקוד לדוגמה מראה איך לכתוב את הערכים בטווח.
שאילתה ValueInputOption
הוא פרמטר נדרש והוא קובע אם הערכים שנכתבו ינותחו (עבור
לדוגמה, המרה של מחרוזת לתאריך).
גוף הבקשה הוא
ValueRange
שמתאר את ערכי הטווח לכתיבה.
שדה majorDimension
מציין שהמערכים הם רשימות של ערכים שמסודרים לפי שורות. ערכים קיימים
שבטווח היעד יוחלפו.
פרוטוקול הבקשה מוצג למטה.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:D5", "majorDimension": "ROWS", "values": [ ["Item", "Cost", "Stocked", "Ship Date"], ["Wheel", "$20.50", "4", "3/1/2016"], ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"] ], }
התגובה מורכבת
UpdateValuesResponse
אובייקט, כמו זה:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}
הגיליון שמתקבל נראה כך:
A | B | C | D | |
1 | פריט | עלות | מלאי | תאריך משלוח |
2 | גלגל ענק | 82.00 ש"ח | 4 | 01.03.2016 |
3 | דלת | 60 ש"ח | 2 | 15.03.2016 |
4 | מנוע | 400 ש"ח | 1 | 20.03.2016 |
5 | סה"כ | 543.0 ש"ח | 7 | 20.03.2016 |
כתבו באופן סלקטיבי לטווח
בעת כתיבת ערכים בטווח, אפשר להימנע משינוי
תאים באמצעות הגדרת רכיבי המערך המתאימים ל-null
. ייתכן גם
כדי לנקות תא על ידי כתיבת מחרוזת ריקה (""
).
להתחיל מגיליון שמכיל את אותם נתונים שהופקו למעלה
דוגמה:
spreadsheets.values.update
דוגמת קוד שמראה איך לכתוב את הערכים בטווח B1:D4, באופן סלקטיבי
להשאיר חלק מהתאים ללא שינוי ולנקות אחרים.
שאילתה ValueInputOption
הוא פרמטר חובה והוא קובע אם הערכים שנכתבו ינותחו (
לדוגמה, המרה של מחרוזת לתאריך).
גוף הבקשה הוא
ValueRange
שמתאר את ערכי הטווח שצריך לכתוב.
שדה majorDimension
מציין שהמערכים הם רשימות של ערכים שמסודרים לפי עמודה.
פרוטוקול הבקשה מוצג למטה.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!B1", "majorDimension": "COLUMNS", "values": [ [null,"$1","$2", ""], [], [null,"4/1/2016", "4/15/2016", ""] ] }
בשדה values
כאן מפורטים השינויים שבוצעו בכל עמודה בטווח.
מערך ראשון מציין שיש להשאיר את B1 ללא שינוי (בגלל מערך null
), ואילו את B4 יש להסיר (מחרוזת ריקה). ל-B2 ול-B3 יש ערכים
עודכן. המערך השלישי מבצע את אותן פעולות בעמודה D,
מערך ריק שני מציין שעמודה C נשארת ללא שינוי.
התגובה מורכבת
UpdateValuesResponse
כמו בדוגמה הזו:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!B1:D5",
"updatedRows": 3,
"updatedColumns": 2,
"updatedCells": 6,
}
הגיליון שמתקבל נראה כך:
A | B | C | D | |
1 | פריט | עלות | מלאי | תאריך משלוח |
2 | גלגל ענק | 4 ש"ח | 4 | 01.04.2016 |
3 | דלת | 2$ | 2 | 15.04.2016 |
4 | מנוע | 1 | ||
5 | סה"כ | 12 ש"ח | 7 | 15.04.2016 |
חשוב לזכור שבעמודה 'סה"כ' למרות שהבקשה לא שונתה ישירות, השתנה כי התאים שלו מכילים נוסחאות שתלויות בתאים שהשתנו.
כתיבה למספר טווחים
מתחילים בגיליון ריק:
spreadsheets.values.batchUpdate
הקוד לדוגמה מראה איך לכתוב את הערכים לטווחים Sheet1!A1:A4
Sheet1!B1:D2. הערכים הקיימים בטווח היעד יוחלפו. הבקשה
גוף
אובייקט ValueInputOption
ש
מראה איך לפרש את נתוני הקלט
ValueRange
האובייקטים שתואמים לכל טווח שנכתבו.
שדה majorDimension
קובע אם המערכים הכלולים יתפרשו כמערכים של עמודות או שורות.
פרוטוקול הבקשה מוצג למטה.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values:batchUpdate
{ "valueInputOption": "VALUE_INPUT_OPTION", "data": [ { "range": "Sheet1!A1:A4", "majorDimension": "COLUMNS", "values": [ ["Item", "Wheel", "Door", "Engine"] ] }, { "range": "Sheet1!B1:D2", "majorDimension": "ROWS", "values": [ ["Cost", "Stocked", "Ship Date"], ["$20.50", "4", "3/1/2016"] ] } ] }
התגובה מכילה אובייקט שמפרט את הנתונים הסטטיסטיים המעודכנים של התא
ומערך של
UpdateValuesResponse
אובייקטים, אחד לכל טווח מעודכן. לדוגמה:
{ "spreadsheetId":SPREADSHEET_ID
, "totalUpdatedRows": 4, "totalUpdatedColumns": 4, "totalUpdatedCells": 10, "totalUpdatedSheets": 1, "responses": [ { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A1:A4", "updatedRows": 4, "updatedColumns": 1, "updatedCells": 4, }, { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!B1:D2", "updatedRows": 2, "updatedColumns": 3, "updatedCells": 6, } ], }
הגיליון שמתקבל נראה כך:
A | B | C | D | |
1 | פריט | עלות | מלאי | תאריך משלוח |
2 | גלגל ענק | 82.00 ש"ח | 4 | 01.03.2016 |
3 | דלת | |||
4 | מנוע | |||
5 |
כתיבת ערכים ללא ניתוח
מתחילים בגיליון ריק:
spreadsheets.values.update
הקוד לדוגמה מראה איך לכתוב את הערכים בטווח Sheet1!A1:E1, אבל
RAW
ValueInputOption
פרמטר של שאילתה כדי למנוע ניתוח של המחרוזות הכתובות כנוסחאות,
בוליאני או מספרים. הן מופיעות כמחרוזות והיישור ישר
בגיליון.
גוף הבקשה הוא
ValueRange
שמתאר את ערכי הטווח שצריך לכתוב.
שדה majorDimension
מציין שהמערכים הם רשימות של ערכים שמסודרים לפי שורות. ערכים קיימים
שבטווח היעד יוחלפו.
פרוטוקול הבקשה מוצג למטה.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1?valueInputOption=RAW
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Data", 123.45, true, "=MAX(D2:D4)", "10"] ], }
התגובה מורכבת
UpdateValuesResponse
כמו בדוגמה הזו:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:E1",
"updatedRows": 1,
"updatedColumns": 5,
"updatedCells": 5,
}
הגיליון שמתקבל נראה כך:
A | B | C | D | E | |
1 | נתונים | 123.45 | TRUE | =MAX(D2:D4) | 10 |
2 |
יש לשים לב ל-"TRUE" ממורכז והערך בוליאני, ואילו 123.45 נכון להיות מוצדקת כי זה מספר, ו-"10" נשאר מוצדק כי String. הנוסחה לא מנותחת והיא מופיעה גם כמחרוזת.
צירוף ערכים
מתחילים בגיליון כמו הטבלה הבאה:
A | B | C | D | |
1 | פריט | עלות | מלאי | תאריך משלוח |
2 | גלגל ענק | 82.00 ש"ח | 4 | 01.03.2016 |
3 |
הבאים
spreadsheets.values.append
דוגמת קוד מראה איך להוסיף שתי שורות ערכים חדשות, החל משורה 3.
שאילתה ValueInputOption
הוא פרמטר נדרש והוא קובע אם הערכים שנכתבו ינותחו (עבור
לדוגמה, המרה של מחרוזת לתאריך).
גוף הבקשה הוא
ValueRange
שמתאר את ערכי הטווח לכתיבה.
שדה majorDimension
מציין שהמערכים הם רשימות של ערכים שמסודרים לפי שורות.
פרוטוקול הבקשה מוצג למטה.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ], }
התגובה מורכבת
AppendValuesResponse
כמו בדוגמה הזו:
{ "spreadsheetId":SPREADSHEET_ID
, "tableRange": "Sheet1!A1:D2", "updates": { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A3:D4", "updatedRows": 2, "updatedColumns": 4, "updatedCells": 8, } }
הגיליון שמתקבל נראה כך:
A | B | C | D | |
1 | פריט | עלות | מלאי | תאריך משלוח |
2 | גלגל ענק | 82.00 ש"ח | 4 | 01.03.2016 |
3 | דלת | 60 ש"ח | 2 | 15.03.2016 |
4 | מנוע | 400 ש"ח | 1 | 20.03.2016 |
5 |