באמצעות Google Sheets API אפשר לבצע פעולות שונות על הנתונים בגיליון האלקטרוני. אפשר לבצע את רוב הפונקציות שזמינות למשתמשים שעובדים עם ממשק המשתמש של Sheets גם באמצעות Sheets API. בדוגמאות שבדף הזה מוסבר איך לבצע פעולות נפוצות בגיליון אלקטרוני באמצעות Sheets API.
הדוגמאות האלה מוצגות כבקשות HTTP כדי שיהיו ניטרליות מבחינת שפה. במאמר עדכון גיליונות אלקטרוניים מוסבר איך מטמיעים עדכון באצווה בשפות שונות באמצעות ספריות הלקוח של Google API.
בדוגמאות האלה, התוויות SPREADSHEET_ID
ו-SHEET_ID
מצביעות על המקומות שבהם צריך לספק את המזהים האלה. המזהה של הגיליון האלקטרוני מופיע בכתובת ה-URL של הגיליון האלקטרוני. אפשר לקבל את מזהה הגיליון באמצעות ה-method 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 באותו גיליון. השיטה משתמשת ב-enum 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 ומשתמשת במערך הערכים 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"
}
]
}
}
]
}