แผนภูมิ

Google Sheets API ช่วยให้คุณสร้างและอัปเดตแผนภูมิภายในสเปรดชีตได้ตามต้องการ ตัวอย่างในหน้านี้แสดงวิธีดำเนินการกับแผนภูมิที่พบบ่อยบางอย่างด้วยชีต API

ตัวอย่างเหล่านี้จะแสดงในรูปแบบคำขอ HTTP เพื่อให้เป็นกลางทางภาษา ดูวิธีใช้การอัปเดตแบบเป็นกลุ่มในภาษาต่างๆ โดยใช้ไลบรารีของไคลเอ็นต์ Google API ได้ที่อัปเดตสเปรดชีต

ในตัวอย่างเหล่านี้ ตัวยึดตำแหน่ง SPREADSHEET_ID และ SHEET_ID

ระบุตำแหน่งที่คุณจะระบุรหัสเหล่านั้น คุณจะพบรหัสของสเปรดชีตใน URL ของสเปรดชีต คุณรับรหัสชีตได้โดยใช้เมธอด spreadsheets.get โดยจะระบุช่วงโดยใช้รูปแบบ A1 ตัวอย่างช่วงคือ Sheet1!A1:D5

นอกจากนี้ ตัวยึดตำแหน่ง CHART_ID ยังระบุรหัสของแผนภูมิที่กำหนด คุณตั้งค่ารหัสนี้ได้เมื่อสร้างแผนภูมิด้วยชีต API หรือจะอนุญาตให้ชีต API สร้างรหัสให้คุณก็ได้ คุณดูรหัสของ แผนภูมิที่มีอยู่ได้โดยใช้เมธอด spreadsheets.get

สุดท้าย ตัวยึดตำแหน่ง SOURCE_SHEET_ID จะระบุชีตที่มี ข้อมูลต้นทาง ในตัวอย่างเหล่านี้ ตารางนี้จะแสดงอยู่ในส่วนข้อมูลแหล่งที่มาของแผนภูมิ

ข้อมูลแหล่งที่มาของแผนภูมิ

สำหรับตัวอย่างเหล่านี้ ให้ถือว่าสเปรดชีตที่ใช้มีข้อมูลแหล่งที่มาต่อไปนี้ในชีตแรก ("ชีต1") สตริงในแถวแรกคือป้ายกำกับสำหรับ แต่ละคอลัมน์ หากต้องการดูตัวอย่างวิธีอ่านจากชีตอื่นๆ ใน สเปรดชีต โปรดดูรูปแบบ A1

A 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 เพื่อสร้างแผนภูมิวงกลม 3 มิติจากข้อมูลแหล่งที่มา คำขอจะทำสิ่งต่อไปนี้เพื่อ กำหนดค่าแผนภูมิ

  • ตั้งชื่อแผนภูมิ
  • เพิ่มคำอธิบายแทนในด้านขวาของแผนภูมิ
  • ตั้งค่าแผนภูมิเป็นแผนภูมิวงกลม 3 มิติ โปรดทราบว่าแผนภูมิวงกลม 3 มิติไม่สามารถมี "รูโดนัท" ตรงกลางเหมือนกับแผนภูมิวงกลมแบบแบน
  • กำหนดชุดข้อมูลแผนภูมิเป็นยอดขายทั้งหมดสำหรับหมายเลขรุ่นแต่ละรายการ
  • ยึดแผนภูมิไว้ในเซลล์ 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             }           }         }       }     }   ] }

คำขอจะสร้างแผนภูมิที่มีลักษณะดังนี้

เพิ่มผลการค้นหาสูตรแผนภูมิวงกลม

หรือคุณจะอัปเดตค่า legendPosition จาก 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
  • ย้ายคำอธิบายไปยังด้านขวาของแผนภูมิ
  • สลับแกนเพื่อให้ "ยอดขาย" อยู่ที่แกนล่างและ "หมายเลขรุ่น" อยู่ที่แกนซ้าย
  • ตั้งค่ารูปแบบชื่อแกนให้เป็นแบบอักษรขนาด 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 พิกเซล
  • ปรับขนาดเป็น 1200 x 742 พิกเซล (ขนาดเริ่มต้นของแผนภูมิคือ 600 x 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 ระบุว่าควรแสดงเฉพาะข้อมูลแผนภูมิ

การตอบกลับการเรียกใช้เมธอดนี้คือออบเจ็กต์ spreadsheet ซึ่งมีอาร์เรย์ของออบเจ็กต์ sheet แผนภูมิใดๆ ที่อยู่ในชีตจะแสดงในออบเจ็กต์ sheet หากตั้งค่าฟิลด์การตอบกลับเป็นค่าเริ่มต้น ระบบจะละเว้นฟิลด์ดังกล่าวจากการตอบกลับ

ในตัวอย่างนี้ ชีตแรก (SOURCE_SHEET_ID) ไม่มีแผนภูมิใดๆ ระบบจึงแสดงผลเครื่องหมายปีกกาคู่ที่ว่างเปล่า ชีตที่ 2 มี แผนภูมิที่สร้างโดยเพิ่มแผนภูมิคอลัมน์ และไม่มีอย่างอื่น

โปรโตคอลคำขอแสดงอยู่ด้านล่าง

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",           },         }       ]     }   ] }