תפעול טבלאות

באמצעות Google Slides API אפשר ליצור ולערוך טבלאות בדפים. בדוגמאות בדף הזה מפורטות כמה פעולות נפוצות בטבלה באמצעות השיטה presentations.batchUpdate.

בדוגמאות האלה נעשה שימוש במשתנים הבאים:

  • PRESENTATION_ID – כאן מזינים את מזהה המצגת. אפשר למצוא את הערך של המזהה הזה מכתובת ה-URL של המצגת.
  • PAGE_ID – מציין איפה מספקים את המזהים של האובייקטים של הדף. אפשר לאחזר את הערך הזה מכתובת ה-URL או באמצעות בקשת קריאה ל-API.
  • TABLE_ID – מציין את המיקום שבו מציינים את מזהה האובייקט של רכיב הדף לטבלה שבה עובדים. תוכלו לציין את המזהה הזה לרכיבים שאתם יוצרים (עם הגבלות מסוימות) או לאפשר ל-Slides API ליצור אותו באופן אוטומטי. אפשר לאחזר את מזהי הרכיבים באמצעות בקשת קריאה ל-API.

הדוגמאות האלה מוצגות כבקשות HTTP כדי שיהיו ניטרליות מבחינת שפה. במאמר הוספת צורות וטקסט מוסבר איך מטמיעים עדכון באצווה בשפות שונות באמצעות ספריות הלקוח של Google API.

צור טבלה

דוגמת הקוד הבאה של presentations.batchUpdate מראה איך להשתמש ב-method CreateTableRequest כדי להוסיף טבלה לשקף שצוין על ידי PAGE_ID.

בטבלה הזו יש שמונה שורות וחמישה עמודות. שימו לב שה-API של Slides מתעלם מכל השדות size או transform שמסופקים כחלק מה-elementProperties. במקום זאת, ה-API יוצר טבלה שממוקמת בערך במרכז השקופית, ומותאמת בגודל למספר השורות והעמודות שצוין, אם אפשר.

זהו פרוטוקול הבקשה ליצירת טבלה:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createTable": {
        "objectId": TABLE_ID,
        "elementProperties": {
          "pageObjectId": PAGE_ID,
        },
        "rows": 8,
        "columns": 5
      }
    }
  ]
}

מחיקה של שורות או עמודות בטבלה

בדוגמת הקוד הבאה של presentations.batchUpdate מוסבר איך להשתמש ב-method‏ DeleteTableRowRequest כדי להסיר את השורה השישית. לאחר מכן היא משתמשת ב-method DeleteTableColumnRequest כדי להסיר את העמודה הרביעית. הטבלה מצוינה על ידי TABLE_ID. גם rowIndex וגם columnIndex בתוך cellLocation מבוססים על אפס.

זה פרוטוקול הבקשה למחיקת שורות או עמודות בטבלה:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteTableRow": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 5
        }
      }
    },
    {
      "deleteTableColumn": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "columnIndex": 3
        }
      }
    }
  ]
}

עריכת נתוני הטבלה

בדוגמת הקוד הבאה של presentations.batchUpdate מוסבר איך להשתמש בשיטה DeleteTextRequest כדי להסיר את כל הטקסט בתא ב-textRange. לאחר מכן, המערכת משתמשת ב-method‏ InsertTextRequest כדי להחליף אותו בטקסט החדש 'קנגורו'.

הטבלה מצוינה על ידי TABLE_ID. התא הפגום נמצא בשורה החמישית ובעמודה השלישית. גם הערך של rowIndex וגם הערך של columnIndex ב-cellLocation מבוססים על אפס.

זהו פרוטוקול הבקשה לעריכת נתוני טבלה:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 4,
          "columnIndex": 2
        },
        "textRange": {
          "type": "ALL",
        }
      }
    },
    {
      "insertText": {
        "objectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 4,
          "columnIndex": 2
        },
        "text": "Kangaroo",
        "insertionIndex": 0
      }
    }
  ]
}

עיצוב שורת הכותרת של טבלה

בדוגמת הקוד הבאה של presentations.batchUpdate מוסבר איך להשתמש בשיטה UpdateTableCellPropertiesRequest כדי לעצב את שורת הכותרת של אלמנט טבלה, בתוך tableRange שצוין על ידי TABLE_ID. לאחר מכן היא משתמשת בשיטה TableCellProperties כדי להגדיר את צבע הרקע של שורת הכותרת לשחור.

בכל אחת מהבקשות הבאות נעשה שימוש ב-method‏ UpdateTextStyleRequest כדי להגדיר את פורמט הטקסט בתא אחד בשורת הכותרת כגופן Cambria לבן מודגש בגודל 18pt בתוך textRange. אחר כך צריך לחזור על הבקשה הזו לכל תא נוסף בכותרת.

גם rowIndex וגם columnIndex בתוך location ו-cellLocation מבוססים על אפס.

זהו פרוטוקול הבקשה לפורמט של שורת כותרת בטבלה:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateTableCellProperties": {
        "objectId": TABLE_ID,
        "tableRange": {
          "location": {
            "rowIndex": 0,
            "columnIndex": 0
          },
          "rowSpan": 1,
          "columnSpan": 3
        },
        "tableCellProperties": {
          "tableCellBackgroundFill": {
            "solidFill": {
              "color": {
                "rgbColor": {
                  "red": 0.0,
                  "green": 0.0,
                  "blue": 0.0
                }
              }
            }
          }
        },
        "fields": "tableCellBackgroundFill.solidFill.color"
      }
    },
    {
      "updateTextStyle": {
        "objectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 0,
          "columnIndex": 0
        },
        "style": {
          "foregroundColor": {
            "opaqueColor": {
              "rgbColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              }
            }
          },
          "bold": true,
          "fontFamily": "Cambria",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        },
        "textRange": {
          "type": "ALL"
        },
        "fields": "foregroundColor,bold,fontFamily,fontSize"
      }
    },
    // Repeat the above request for each additional cell in the header row....
  ]
}

כך נראית שורת הכותרת בפורמט אחרי העדכונים האלה:

עיצוב התוצאה של המתכון בשורת הכותרת.

הוספת שורות או עמודות בטבלה

בדוגמת הקוד הבאה של presentations.batchUpdate מוסבר איך להשתמש בשיטה InsertTableRowsRequest כדי להוסיף שלוש שורות מתחת לשורה השישית. לאחר מכן, הקוד משתמש ב-method‏ InsertTableColumnsRequest כדי להוסיף שתי עמודות שמאלה מהעמודה הרביעית באותה טבלה.

הטבלה מצוינה על ידי TABLE_ID. גם ה-rowIndex וגם ה-columnIndex בתוך ה-cellLocation מבוססים על אפס.

זהו פרוטוקול הבקשה להוספת שורות או עמודות לטבלה:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "insertTableRows": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "rowIndex": 5
        },
        "insertBelow": true,
        "number": 3
      }
    },
    {
      "insertTableColumns": {
        "tableObjectId": TABLE_ID,
        "cellLocation": {
          "columnIndex": 3
        },
        "insertRight": false,
        "number": 2
      }
    }
  ]
}