চার্ট

গুগল শিটস এপিআই আপনাকে প্রয়োজন অনুযায়ী স্প্রেডশিটের মধ্যে চার্ট তৈরি ও আপডেট করার সুযোগ দেয়। এই পৃষ্ঠার উদাহরণগুলিতে দেখানো হয়েছে, কীভাবে আপনি শিটস এপিআই ব্যবহার করে চার্টের কিছু সাধারণ কাজ সম্পাদন করতে পারেন।

ভাষা নিরপেক্ষতার জন্য এই উদাহরণগুলো HTTP অনুরোধ আকারে উপস্থাপন করা হয়েছে। গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে বিভিন্ন ভাষায় কীভাবে ব্যাচ আপডেট বাস্তবায়ন করতে হয় তা জানতে, “স্প্রেডশিট আপডেট করুন” দেখুন।

এই উদাহরণগুলিতে, প্লেসহোল্ডারগুলি SPREADSHEET_ID এবং SHEET_ID

এটি নির্দেশ করে যে আপনি আইডিগুলো কোথায় প্রদান করবেন। আপনি স্প্রেডশীট ইউআরএল-এ স্প্রেডশীট আইডি খুঁজে পেতে পারেন। আপনি spreadsheets.get মেথড ব্যবহার করে শীট আইডি পেতে পারেন। রেঞ্জগুলো A1 নোটেশন ব্যবহার করে নির্দিষ্ট করা হয়। একটি উদাহরণ রেঞ্জ হলো Sheet1!A1:D5।

এছাড়াও, প্লেসহোল্ডার CHART_ID একটি নির্দিষ্ট চার্টের আইডি নির্দেশ করে। আপনি শীটস এপিআই (Sheets API) ব্যবহার করে চার্ট তৈরি করার সময় এই আইডিটি সেট করতে পারেন, অথবা শীটস এপিআই-কে আপনার জন্য একটি আইডি তৈরি করার অনুমতি দিতে পারেন। আপনি spreadsheets.get মেথড ব্যবহার করে বিদ্যমান চার্টগুলোর আইডি পেতে পারেন।

অবশেষে, প্লেসহোল্ডার SOURCE_SHEET_ID আপনার সোর্স ডেটা সহ শীটটিকে নির্দেশ করে। এই উদাহরণগুলিতে, এটি হল 'চার্ট সোর্স ডেটা'-এর অধীনে তালিকাভুক্ত টেবিলটি।

চার্টের উৎস ডেটা

এই উদাহরণগুলোর জন্য, ধরে নিন যে ব্যবহৃত স্প্রেডশীটটির প্রথম শীটে ("শীট১") নিম্নলিখিত উৎস ডেটা রয়েছে। প্রথম সারির স্ট্রিংগুলো হলো প্রতিটি কলামের লেবেল। আপনার স্প্রেডশীটের অন্যান্য শীট থেকে কীভাবে ডেটা পড়তে হয় তার উদাহরণ দেখতে, A1 নোটেশন দেখুন।

একটি বি সি ডি
মডেল নম্বর বিক্রয় - জানুয়ারি বিক্রয় - ফেব্রুয়ারী বিক্রয় - মার্চ মোট বিক্রয়
ডি-০১এক্স ৬৮ ৭৪ ৬০ ২০২
FR-0B1 ৯৭ ৭৬ ৮৮ ২৬১
পি-০৩৪ ২৭ ৪৯ ৩২ ১০৮
পি-১০৫ ৪৬ ৪৪ ৬৭ ১৫৭
ডাব্লিউ-১১ ৭৫ ৬৮ ৮৭ ২৩০
W-24 ৭৪ ৫২ ৬২ ১৮৮

একটি কলাম চার্ট যোগ করুন

নিম্নলিখিত spreadsheets.batchUpdate কোড নমুনাটি দেখায় কিভাবে AddChartRequest ব্যবহার করে উৎস ডেটা থেকে একটি কলাম চার্ট তৈরি করে একটি নতুন শীটে স্থাপন করা যায়। চার্টটি কনফিগার করার জন্য অনুরোধটি নিম্নলিখিত কাজগুলো করে:

  • চার্টের ধরণ কলাম চার্ট হিসেবে সেট করে।
  • চার্টের নীচে একটি লিজেন্ড যোগ করে।
  • চার্ট এবং অক্ষের শিরোনাম নির্ধারণ করে।
  • ডিফল্ট ফরম্যাটিং ও রং ব্যবহার করে ৩টি ভিন্ন মাসের বিক্রয় উপস্থাপনকারী ৩টি ডেটা সিরিজ কনফিগার করে।

অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।

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 কোড নমুনাটি দেখায় কিভাবে উৎস ডেটা থেকে একটি 3D পাই চার্ট তৈরি করতে AddChartRequest ব্যবহার করতে হয়। চার্টটি কনফিগার করার জন্য অনুরোধটি নিম্নলিখিত কাজগুলো করে:

  • চার্টের শিরোনাম নির্ধারণ করে।
  • চার্টের ডানদিকে একটি লিজেন্ড যোগ করে।
  • চার্টটিকে একটি 3D পাই চার্ট হিসাবে সেট করে। উল্লেখ্য যে, ফ্ল্যাট পাই চার্টের মতো 3D পাই চার্টের কেন্দ্রে "ডোনাট হোল" থাকতে পারে না।
  • প্রতিটি মডেল নম্বরের মোট বিক্রয়কে চার্ট ডেটা সিরিজ হিসেবে সেট করে।
  • SHEET_ID দ্বারা নির্দিষ্ট শীটের C3 সেলে চার্টটিকে 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 হিসেবে সেট করে। রিকোয়েস্ট URL-এ A1 নোটেশন ব্যবহার করে রেঞ্জগুলো নির্দিষ্ট করা হয়।
  • SHEET_ID দ্বারা নির্দিষ্ট শীটের H8 সেলে চার্টটিকে অ্যাঙ্কর করে।

অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।

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 কোড নমুনাটি দেখায় কিভাবে CHART_ID দ্বারা নির্দিষ্ট একটি চার্ট মুছে ফেলার জন্য DeleteEmbeddedObjectRequest ব্যবহার করতে হয়।

অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।

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

একটি চার্টের বৈশিষ্ট্য সম্পাদনা করুন

নিম্নলিখিত spreadsheets.batchUpdate কোড নমুনাটি দেখায় কিভাবে 'Add a column chart' রেসিপিতে তৈরি করা চার্টের ডেটা, টাইপ এবং চেহারা পরিবর্তন করে সম্পাদনা করার জন্য UpdateChartSpecRequest ব্যবহার করতে হয়। চার্টের প্রোপার্টির উপসেটগুলি পৃথকভাবে পরিবর্তন করা যায় না। সম্পাদনা করার জন্য, আপনাকে UpdateChartSpecRequest এর সাথে সম্পূর্ণ spec ফিল্ডটি সরবরাহ করতে হবে। মূলত, একটি চার্ট স্পেসিফিকেশন সম্পাদনা করার জন্য এটিকে একটি নতুন দিয়ে প্রতিস্থাপন করতে হয়।

নিম্নলিখিত অনুরোধটি মূল চার্টটি ( CHART_ID দ্বারা নির্দিষ্ট) আপডেট করে:

  • চার্টের ধরণ BAR হিসেবে সেট করে।
  • লিজেন্ডটিকে চার্টের ডানদিকে সরিয়ে দেয়।
  • অক্ষগুলোকে উল্টে দেয়, যাতে "বিক্রয়" নিচের অক্ষে এবং "মডেল নম্বর" বাম অক্ষে থাকে।
  • অক্ষের শিরোনামের ফরম্যাট ২৪-পয়েন্ট ফন্টে, বোল্ড এবং ইটালিক আকারে সেট করে।
  • চার্ট থেকে "W-24" ডেটা মুছে ফেলে ( চার্টের উৎস ডেটার ৭ম সারি)।

অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।

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 অক্ষ বরাবর ১০০ পিক্সেল অফসেট করুন।
  • ১২০০ বাই ৭৪২ পিক্সেলে আকার পরিবর্তন করা হয়েছে (একটি চার্টের ডিফল্ট আকার হলো ৬০০ বাই ৩৭১ পিক্সেল)।

এই অনুরোধটি শুধুমাত্র 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 ) কোনো চার্ট নেই, তাই একটি খালি জোড়া বন্ধনী ফেরত দেওয়া হয়েছে। দ্বিতীয় শীটে ‘Add a column chart’ দ্বারা তৈরি চার্টটি ছাড়া আর কিছুই নেই।

অনুরোধ প্রোটোকলটি নিচে দেখানো হলো।

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