עיצוב בסיסי

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

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

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

בדוגמאות האלה, ה-placeholders 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 Apr 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"
      }
    }
  ]
}