תרשימים

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

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

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

בנוסף, ה-placeholder CHART_ID מציין את המזהה של נתון תרשים. אפשר להגדיר את המזהה הזה כשיוצרים תרשים באמצעות Sheets API, או לאפשר ל-Sheets API ליצור בשבילכם נכס כזה. אפשר לקבל את המזהים של תרשימים קיימים עם spreadsheets.get.

לבסוף, ה-placeholder SOURCE_SHEET_ID מציין שהגיליון שלכם מכיל בנתוני המקור. בדוגמאות האלו, זו הטבלה שמופיעה בקטע מקור התרשים .

נתוני המקור של התרשים

בדוגמאות האלה, נניח שהגיליון האלקטרוני שבו אתם משתמשים כולל את המקור הבא בגיליון הראשון ("גיליון1"). המחרוזות בשורה הראשונה הן תוויות של כל אחת מהעמודות. כדי לראות דוגמאות לקריאה מגיליונות אחרים ב- בגיליון האלקטרוני, ראו סימון A1.

A B C D E
1 מספר הדגם מכירות - ינואר מכירות - פברואר מכירות - מרץ סה"כ מכירות
2 D-01X 68 74 60 202
3 FR-0B1 97 76 88 261
4 P-034 27 49 32 108
5 P-105 46 44 67 157
6 W-11 75 68 87 230
7 W-24 74 52 62 188

הוספת תרשים עמודות אנכי

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

  • מגדיר את סוג התרשים כתרשים עמודות אנכי.
  • הוספת מקרא בתחתית התרשים.
  • הגדרת הכותרות של התרשים והצירים.
  • מגדירה 3 סדרות נתונים, שמייצגות מכירות במשך 3 חודשים שונים, באמצעות העיצוב והצבעים המוגדרים כברירת מחדל.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "title": "Model Q1 Sales",
            "basicChart": {
              "chartType": "COLUMN",
              "legendPosition": "BOTTOM_LEGEND",
              "axis": [
                {
                  "position": "BOTTOM_AXIS",
                  "title": "Model Numbers"
                },
                {
                  "position": "LEFT_AXIS",
                  "title": "Sales"
                }
              ],
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1
                        }
                      ]
                    }
                  }
                }
              ],
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 2,
                          "endColumnIndex": 3
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "sheetId": SOURCE_SHEET_ID,
                          "startRowIndex": 0,
                          "endRowIndex": 7,
                          "startColumnIndex": 3,
                          "endColumnIndex": 4
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                }
              ],
              "headerCount": 1
            }
          },
          "position": {
            "newSheet": true
          }
        }
      }
    }
  ]
}

הבקשה יוצרת תרשים בגיליון חדש, באופן הבא:

הוספת תוצאה של מתכון לתרשים עמודות

הוספה של תרשים עוגה

הבאים spreadsheets.batchUpdate דוגמת הקוד מראה איך להשתמש AddChartRequest כדי ליצור תרשים עוגה תלת-ממדי מנתוני המקור. הבקשה מבצעת את הפעולות הבאות כדי להגדיר את התרשים:

  • מגדיר את כותרת התרשים.
  • הוספת מקרא מימין לתרשים.
  • מגדיר את התרשים כתרשים עוגה תלת-ממדי. הערה: בתרשימי עוגה תלת-ממדיים לא יכולים להיות ' donut hole' במרכז, כמו שתרשימי עוגה שטוחים יכולים להופיע.
  • מגדיר את סדרת הנתונים של התרשים כמספר המכירות הכולל לכל דגם.
  • הפונקציה מעוגנת את התרשים בתא C3 בגיליון שצוין ב-SHEET_ID, עם היסט של 50 פיקסלים גם בכיוון ה-X וגם בכיוון Y.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "title": "Model Q1 Total Sales",
            "pieChart": {
              "legendPosition": "RIGHT_LEGEND",
              "threeDimensional": true,
              "domain": {
                "sourceRange": {
                  "sources": [
                    {
                      "sheetId": SOURCE_SHEET_ID,
                      "startRowIndex": 0,
                      "endRowIndex": 7,
                      "startColumnIndex": 0,
                      "endColumnIndex": 1
                    }
                  ]
                }
              },
              "series": {
                "sourceRange": {
                  "sources": [
                    {
                      "sheetId": SOURCE_SHEET_ID,
                      "startRowIndex": 0,
                      "endRowIndex": 7,
                      "startColumnIndex": 4,
                      "endColumnIndex": 5
                    }
                  ]
                }
              },
            }
          },
          "position": {
            "overlayPosition": {
              "anchorCell": {
                "sheetId": SHEET_ID,
                "rowIndex": 2,
                "columnIndex": 2
              },
              "offsetXPixels": 50,
              "offsetYPixels": 50
            }
          }
        }
      }
    }
  ]
}

הבקשה יוצרת תרשים כזה:

הוספת תוצאה של מתכון לתרשים עוגה

לחלופין, אפשר גם לעדכן את ערך מקרא המיקום מ-RIGHT_LEGEND אל LABELED_LEGEND בתוך הבקשה, כך שערכי המקרא מחוברת לפרוסות של תרשים העוגה.

'legendPosition': 'LABELED_LEGEND',

בבקשה המעודכנת נוצר תרשים כזה:

הוספת תוצאה של מתכון לתרשים עוגה

הוספת תרשים קו שמכיל כמה טווחים לא סמוכים

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

הבקשה מבצעת את הפעולות הבאות כדי להגדיר את התרשים:

  • מגדיר את סוג התרשים כתרשים קו.
  • מגדיר את הכותרת של ציר ה-X האופקי.
  • מגדירה סדרת נתונים שמייצגת מכירות. היא מגדירה את A1:A3 ואת A6:A7 domain ו-B1:B3 ו-B6:B7 series, תוך שימוש בעיצוב ובצבעים שמוגדרים כברירת מחדל. הטווחים מצוינים באמצעות A1 בכתובת ה-URL של הבקשה.
  • הפונקציה מעוגנת את התרשים בתא H8 בגיליון שצוין ב-SHEET_ID.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addChart": {
        "chart": {
          "spec": {
            "basicChart": {
              "chartType": "LINE",
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "startRowIndex": 0,
                          "endRowIndex": 3,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1,
                          "sheetId": SOURCE_SHEET_ID
                        },
                        {
                          "startRowIndex": 5,
                          "endRowIndex": 7,
                          "startColumnIndex": 0,
                          "endColumnIndex": 1,
                          "sheetId": SOURCE_SHEET_ID
                        }
                      ]
                    }
                  }
                }
              ],
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "startRowIndex": 0,
                          "endRowIndex": 3,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2,
                          "sheetId": SOURCE_SHEET_ID
                        },
                        {
                          "startRowIndex": 5,
                          "endRowIndex": 7,
                          "startColumnIndex": 1,
                          "endColumnIndex": 2,
                          "sheetId": SOURCE_SHEET_ID
                        }
                      ]
                    }
                  }
                }
              ]
            }
          },
          "position": {
            "overlayPosition": {
              "anchorCell": {
                "sheetId": SOURCE_SHEET_ID,
                "rowIndex": 8,
                "columnIndex": 8
              }
            }
          }
        }
      }
    }
  ]
}

הבקשה יוצרת תרשים בגיליון חדש, באופן הבא:

הוספת מתכון לתרשים קו של טווח שאינו קרוב
תוצאה אחת

מחיקת תרשים

הבאים spreadsheets.batchUpdate דוגמת הקוד מראה איך להשתמש DeleteEmbeddedObjectRequest כדי למחוק תרשים שצוין ב-CHART_ID.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteEmbeddedObject": {
        "objectId": CHART_ID
      }
    }
  ]
}

עריכת המאפיינים של תרשים

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

הבקשה הבאה מעדכנת את התרשים המקורי (מצוין על ידי CHART_ID):

  • הגדרת סוג התרשים ל-BAR.
  • העברת המקרא לימין התרשים.
  • היפוך הצירים כך ש-"Sales" נמצאת בציר התחתון ובקטע 'מספרי המודל'. נמצאת על הציר השמאלי.
  • הגדרת הפורמט של כותרת הציר לגופן 24 נקודות, מודגש ונטוי.
  • מסירה את ה-"W-24" נתונים מהתרשים (שורה 7 במקור התרשים) נתונים).

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateChartSpec": {
        "chartId": CHART_ID,
        "spec": {
          "title": "Model Q1 Sales",
          "basicChart": {
            "chartType": "BAR",
            "legendPosition": "RIGHT_LEGEND",
            "axis": [
              {
                "format": {
                  "bold": true,
                  "italic": true,
                  "fontSize": 24
                },
                "position": "BOTTOM_AXIS",
                "title": "Sales"
              },
              {
                "format": {
                  "bold": true,
                  "italic": true,
                  "fontSize": 24
                },
                "position": "LEFT_AXIS",
                "title": "Model Numbers"
              }
            ],
            "domains": [
              {
                "domain": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 0,
                        "endColumnIndex": 1
                      }
                    ]
                  }
                }
              }
            ],
            "series": [
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 1,
                        "endColumnIndex": 2
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              },
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 2,
                        "endColumnIndex": 3
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              },
              {
                "series": {
                  "sourceRange": {
                    "sources": [
                      {
                        "sheetId": SOURCE_SHEET_ID,
                        "startRowIndex": 0,
                        "endRowIndex": 6,
                        "startColumnIndex": 3,
                        "endColumnIndex": 4
                      }
                    ]
                  }
                },
                "targetAxis": "BOTTOM_AXIS"
              }
            ],
            "headerCount": 1
          }
        }
      }
    }
  ]
}

לאחר הבקשה, התרשים ייראה כך:

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

הזזה או שינוי הגודל של תרשים

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

  • מעוגנת לתא A5 של הגיליון המקורי.
  • הסטה בכיוון ה-X ב-100 פיקסלים.
  • גודלו השתנה ל-1,200 על 742 פיקסלים (גודל ברירת המחדל של תרשים הוא 600 על 371 פיקסלים).

הבקשה משנה רק את המאפיינים שצוינו עם הפרמטר fields. נכסים אחרים (כמו offsetYPixels) שומרים על הערכים המקוריים שלהם.

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateEmbeddedObjectPosition": {
        "objectId": CHART_ID,
        "newPosition": {
          "overlayPosition": {
            "anchorCell": {
              "rowIndex": 4,
              "columnIndex": 0
            },
            "offsetXPixels": 100,
            "widthPixels": 1200,
            "heightPixels": 742
          }
        },
        "fields": "anchorCell(rowIndex,columnIndex),offsetXPixels,widthPixels,heightPixels"
      }
    }
  ]
}

קריאת נתוני התרשים

הבאים spreadsheets.get דוגמת קוד מראים איך לקבל נתוני תרשים מגיליון אלקטרוני. פרמטר השאילתה fields מציין שצריך להחזיר רק את נתוני התרשים.

התגובה לקריאת ה-method הזו היא spreadsheet שמכיל מערך של sheet אובייקטים. כל תרשימים בגיליון, מיוצגים במאפיין אובייקט sheet. אם השדה 'תשובה' מוגדר לערך ברירת המחדל, והוא לא נכלל בתשובה.

בדוגמה הזו, בגיליון הראשון (SOURCE_SHEET_ID) אין של סוגריים מסולסלים, כך שיוחזרו זוג סוגריים מסולסלים ריקים. בגיליון השני יש את שנוצר באמצעות השילוב הוספת תרשים עמודות אנכי, ולא שום דבר נוסף.

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

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(charts)
{
  "sheets": [
    {},
    {
      "charts": [
        {
          "chartId": CHART_ID,
          "position": {
            "sheetId": SHEET_ID
          },
          "spec": {
            "basicChart": {
              "axis": [
                {
                  "format": {
                    "bold": false,
                    "italic": false
                  },
                  "position": "BOTTOM_AXIS",
                  "title": "Model Numbers"
                },
                {
                  "format": {
                    "bold": false,
                    "italic": false
                  },
                  "position": "LEFT_AXIS",
                  "title": "Sales"
                }
              ],
              "chartType": "COLUMN",
              "domains": [
                {
                  "domain": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 1
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 0,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  }
                }
              ],
              "legendPosition": "BOTTOM_LEGEND",
              "series": [
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 2,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 1,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 3,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 2,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                },
                {
                  "series": {
                    "sourceRange": {
                      "sources": [
                        {
                          "endColumnIndex": 4,
                          "endRowIndex": 7,
                          "sheetId": SOURCE_SHEET_ID,
                          "startColumnIndex": 3,
                          "startRowIndex": 0,
                        }
                      ]
                    }
                  },
                  "targetAxis": "LEFT_AXIS"
                }
              ]
            },
            "hiddenDimensionStrategy": "SKIP_HIDDEN_ROWS_AND_COLUMNS",
            "title": "Model Q1 Sales",
          },
        }
      ]
    }
  ]
}