Google Sheets API מאפשר לשנות נתונים בתוך גיליונות אלקטרוניים בדרכים שונות. את רוב הפונקציונליות הזמינה למשתמשים שעובדים עם ממשק המשתמש של Sheets אפשר לבצע גם באמצעות ה-API של Sheets. הדוגמאות בדף הזה ממחישות איך אפשר לבצע כמה פעולות נפוצות בגיליון אלקטרוני באמצעות Sheets API.
הדוגמאות האלה מוצגות בפורמט של בקשות HTTP ניטרליות מבחינת שפה. על מנת ללמוד כיצד ליישם עדכון ברצף בשפות שונות באמצעות ספריות הלקוח של Google API, קראו את המאמר עדכון גיליונות אלקטרוניים.
בדוגמאות האלה, ערכי ה-placeholder SPREADSHEET_ID
ו-SHEET_ID
מציינים איפה הייתם מספקים את המזהים האלה. המזהה של הגיליון האלקטרוני מופיע בכתובת ה-URL של הגיליון האלקטרוני. אפשר לאתר את מזהה הגיליון באמצעות השיטה spreadsheets.get
. הטווחים מצוינים באמצעות סימון A1. טווח לדוגמה הוא Sheet1!A1:D5.
החלת אימות נתונים על טווח
דוגמת הקוד הבאה spreadsheets.batchUpdate
ממחישה איך להשתמש ב-SetDataValidationRequest
כדי להחיל כלל לאימות נתונים, כאשר "value > 5", על כל תא בטווח A1:D10.
פרוטוקול הבקשה מוצג בהמשך.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"setDataValidation": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"rule": {
"condition": {
"type": "NUMBER_GREATER",
"values": [
{
"userEnteredValue": "5"
}
]
},
"inputMessage": "Value must be > 5",
"strict": true
}
}
}
]
}
העתקה והדבקה של עיצוב תא
דוגמת הקוד הבאה spreadsheets.batchUpdate
ממחישה איך להשתמש ב-CopyPasteRequest
כדי להעתיק את העיצוב רק בטווח A1:D10, ולהדביק אותו בטווח F1:I10 באותו הגיליון. השיטה משתמשת במספר PasteType
עם PASTE_FORMAT
כדי להדביק את הפורמט ואת אימות הנתונים בלבד. הערכים המקוריים ב-A1:D10 נשארים ללא שינוי.
פרוטוקול הבקשה מוצג בהמשך.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "copyPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 5, "endColumnIndex": 9 }, "pasteType": "PASTE_FORMAT", "pasteOrientation": "NORMAL" } } ] }
גזירה והדבקה של תאים
דוגמת הקוד הבאה של spreadsheets.batchUpdate
מראה איך להשתמש בתג CutPasteRequest
.
הפונקציה חותכת את הטווח A1:D10 ומשתמשת ב-enum PasteType
עם PASTE_NORMAL
כדי להדביק את הערכים, הנוסחאות, העיצוב והמיזוג בטווח F1:I10 באותו הגיליון. תוכן התא בטווח המקור המקורי יוסר.
פרוטוקול הבקשה מוצג בהמשך.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "cutPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "rowIndex": 0, "columnIndex": 5 }, "pasteType": "PASTE_NORMAL" } } ] }
חזרה על נוסחה בטווח
דוגמת הקוד הבאה spreadsheets.batchUpdate
מראה איך להשתמש ב-RepeatCellRequest
כדי להעתיק את הנוסחה =FLOOR(A1*PI())
לטווח B1:D10. הטווח של הנוסחה מתפתח באופן אוטומטי לכל שורה ועמודה בטווח, החל מהתא השמאלי העליון. לדוגמה, תא B1 מכיל את הנוסחה =FLOOR(A1*PI())
, ואילו תא D6 מכיל את הנוסחה =FLOOR(C6*PI())
.
פרוטוקול הבקשה מוצג בהמשך.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"repeatCell": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 1,
"endColumnIndex": 4
},
"cell": {
"userEnteredValue": {
"formulaValue": "=FLOOR(A1*PI())"
}
},
"fields": "userEnteredValue"
}
}
]
}
מיון טווח עם כמה מפרטי מיון
דוגמת הקוד הבאה של spreadsheets.batchUpdate
ממחישה איך להשתמש בSortRangeRequest
כדי למיין את הטווח A1:D10, קודם לפי עמודה B בסדר עולה, לאחר מכן לפי עמודה C בסדר יורד, ואז לפי עמודה D בסדר יורד.
פרוטוקול הבקשה מוצג בהמשך.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"sortRange": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"sortSpecs": [
{
"dimensionIndex": 1,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 2,
"sortOrder": "DESCENDING"
},
{
"dimensionIndex": 3,
"sortOrder": "DESCENDING"
}
]
}
}
]
}