תפעול נתונים

‫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 כדי להחיל כלל לאימות נתונים, שבו 'הערך > 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"
          }
        ]
      }
    }
  ]
}