תפעול טבלאות

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

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

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

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

צור טבלה

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

בטבלה הזו יש שמונה שורות וחמש עמודות. חשוב לזכור ש-Slides API מתעלם משדות 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 כדי להסיר את השורה השישית. לאחר מכן, הקוד משתמש בשיטה 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
      }
    }
  ]
}