עיצוב בסיסי

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

סוגים מסוימים של בקשות עשויים להחזיר תגובות במהלך עדכון גיליון אלקטרוני. הן מוחזרות במערך, ולכל תגובה יהיה אותו אינדקס כמו הבקשה המתאימה. לחלק מהבקשות אין תשובות, והתגובה להן ריקה. מבנה התשובות של הדוגמאות האלה מופיע בקטע spreadsheets.batchUpdate.

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

בדוגמאות האלה, ערכי ה-placeholder SPREADSHEET_ID ו-SHEET_ID מציינים איפה הייתם מספקים את המזהים האלה. המזהה של הגיליון האלקטרוני מופיע בכתובת ה-URL של הגיליון האלקטרוני. אפשר לאתר את מזהה הגיליון באמצעות השיטה spreadsheets.get. הטווחים מצוינים באמצעות סימון A1. טווח לדוגמה הוא Sheet1!A1:D5.

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

עריכה של גבולות תאים

דוגמת הקוד הבאה spreadsheets.batchUpdate ממחישה איך להשתמש ב-UpdateBordersRequest כדי לתת לכל תא בטווח A1:F10 גבול מקווקו וכחול בחלק העליון והתחתון. השדה innerHorizontal יוצר גבולות אופקיים בתוך הטווח. אם משמיטים את השדה, הגבולות יתווספו רק לחלק העליון והתחתון של כל הטווח.

טבלה בגודל 3 על 3, כאשר לכל תא יש גבול תחתון מקווקו וכחול.
איור 1. מעצבים כל תא בגיליון עם גבול מקווקו כחול ותחתון.

פרוטוקול הבקשה מוצג בהמשך.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateBorders": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 6
        },
        "top": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "bottom": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "innerHorizontal": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
      }
    }
  ]
}

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

דוגמת הקוד הבאה של spreadsheets.batchUpdate ממחישה איך להשתמש ב-RepeatCellRequest כדי לעצב שורת כותרת בגיליון. הבקשה הראשונה מעדכנת את צבע הטקסט, את צבע הרקע, את גודל הגופן של הטקסט ואת ההצדקה של הטקסט, וגורמת לטקסט מודגש. אם משמיטים את האינדקס של העמודה בשדה range, המערכת מעצבת את כל השורה. הבקשה השנייה מתאימה את מאפייני הגיליון כך ששורת הכותרת תקפא.

טבלה בגודל 3 על 3 עם שורת כותרת מעוצבת בגיליון.
איור 2. עיצוב של שורת הכותרת בגיליון.

פרוטוקול הבקשה מוצג בהמשך.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "backgroundColor": {
              "red": 0.0,
              "green": 0.0,
              "blue": 0.0
            },
            "horizontalAlignment" : "CENTER",
            "textFormat": {
              "foregroundColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              },
              "fontSize": 12,
              "bold": true
            }
          }
        },
        "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)"
      }
    },
    {
      "updateSheetProperties": {
        "properties": {
          "sheetId": SHEET_ID,
          "gridProperties": {
            "frozenRowCount": 1
          }
        },
        "fields": "gridProperties.frozenRowCount"
      }
    }
  ]
}

מזג תאים

דוגמת הקוד הבאה של spreadsheets.batchUpdate מראה איך להשתמש ב-MergeCellsRequest כדי למזג תאים. הבקשה הראשונה ממזגת את טווח A1:B2 לתא אחד. הבקשה השנייה ממזגת את העמודות ב-A3:B6 ומשאירה את השורות מופרדות.

טבלה בגודל 3 על 3 עם תאים ממוזגים בגיליון.
איור 3. מיזוג תאים בגיליון.

פרוטוקול הבקשה מוצג בהמשך.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 2,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_ALL"
      }
    },
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 2,
          "endRowIndex": 6,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_COLUMNS"
      }
    },
  ]
}

הגדרה מותאמת אישית של תאריך ושעה או פורמט עשרוני לטווח

דוגמת הקוד הבאה spreadsheets.batchUpdate מראה איך להשתמש ב-RepeatCellRequest כדי לעדכן תאים כך שיכללו פורמטים מותאמים אישית של תאריך ושעה בעתיד. הבקשה הראשונה מספקת לתאים בטווח A1:A10 את הפורמט המותאם אישית של תאריך ושעה hh:mm:ss am/pm, ddd mmm dd yyyy. דוגמה לתאריך ושעה בפורמט זה: "02:05:07 PM, Sun Apr 03 2016".

הבקשה השנייה מעניקה לתאים ב-B1:B10 את פורמט המספרים המותאם אישית #,##0.0000, שלפיו צריך לקבץ את המספרים באמצעות מפרידים בפסיק, שיהיו 4 ספרות אחרי הנקודה העשרונית ולהשמיט את כל האפס בהתחלה מלבד אחד. לדוגמה: המספר "3.14" מעובד כ-"3.1400", ואילו המספר "12345.12345" מוצג כ-"12,345.1235".

טבלה בגודל 3 על 3 עם פורמט מותאם אישית של תאריך ושעה ומספרים בגיליון.
איור 4. צריך לעדכן תאים בגיליון כך שיכיל פורמט מותאם אישית של תאריך ושעה.

פרוטוקול הבקשה מוצג בהמשך.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "DATE",
              "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    },
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 2
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "NUMBER",
              "pattern": "#,##0.0000"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    }
  ]
}