মন্তব্য পরিচালনা করুন

গুগল শিটস ব্যবহারকারীদের নির্দিষ্ট সেলে মন্তব্য যোগ করার মাধ্যমে যৌথভাবে কাজ করার সুযোগ দেয়।

এই ডকুমেন্টটিতে দেখানো হয়েছে, কীভাবে আপনি গুগল শিটস এপিআই ব্যবহার করে প্রোগ্রাম্যাটিকভাবে মন্তব্য পড়তে, তৈরি করতে, উত্তর দিতে, আপডেট করতে বা মুছে ফেলতে পারেন।

মন্তব্যগুলো পড়ুন

যখন আপনি spreadsheets রিসোর্সের get মেথড ব্যবহার করে কোনো স্প্রেডশীট পুনরুদ্ধার করেন, তখন ডিফল্টরূপে কমেন্ট থ্রেড এবং অ্যাঙ্করগুলো বাদ দেওয়া হয়।

রেসপন্সে কমেন্ট অন্তর্ভুক্ত করতে, commentsViewMode কোয়েরি প্যারামিটারটি COMMENTS_VIEW_MODE_INCLUDED এ সেট করুন। এছাড়াও, যদি কলিং ইউজারের ফাইলটিতে কমেন্ট অ্যাক্সেস থাকে, তাহলে কোয়েরি প্যারামিটারটি COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS এ সেট করলেও কমেন্ট রিটার্ন হয়।

রেসপন্সে comments এবং sheets.commentAnchors উভয় ফিল্ডই ফেরত আসে।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি স্প্রেডশিট থেকে মন্তব্য থ্রেড এবং তাদের অ্যাঙ্কর (গ্রিড রেঞ্জ) পুনরুদ্ধার করতে একটি get রিকোয়েস্ট ব্যবহার করতে হয়:

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=spreadsheetId,comments,sheets(properties(sheetId,title),commentAnchors)

উত্তরে, মন্তব্য দুটি স্থানে ফেরত পাঠানো হয়:

  • গ্লোবাল comments অ্যারে, যা CommentThread অবজেক্টগুলো ধারণ করে।
  • sheets.commentAnchors অ্যারেটিতে CommentAnchor অবজেক্টগুলো থাকে, যা কমেন্ট অ্যাঙ্কর আইডিগুলোকে সেলের অবস্থান (গ্রিড রেঞ্জ)-এর সাথে ম্যাপ করে।

রেঞ্জ বা শীট অনুযায়ী মন্তব্য ফিল্টার করুন

একটি স্প্রেডশীট পুনরুদ্ধার করার সময়, আপনি রেঞ্জ ( spreadsheets.get মেথডে ranges কোয়েরি প্যারামিটার ব্যবহার করে) অথবা শীট ( spreadsheets.getByDataFilter মেথডের রিকোয়েস্ট বডিতে dataFilters ফিল্ড ব্যবহার করে) নির্দিষ্ট করে ফেরত আসা ডেটা ফিল্টার করতে পারেন।

  • আপনি যদি রেঞ্জ বা শীট অনুযায়ী ফিল্টার করেন : শুধুমাত্র নির্দিষ্ট রেঞ্জ বা শীটের মধ্যে অ্যাঙ্কর করা কমেন্ট থ্রেডগুলোই দেখানো হবে। অ্যাঙ্করবিহীন কমেন্ট (যেমন, যে কমেন্টগুলোর মূল সেল কোঅর্ডিনেট মুছে ফেলা হয়েছে) অন্তর্ভুক্ত করা হয় না।
  • আপনি রেঞ্জ বা শীট অনুযায়ী ফিল্টার না করলে : আনঅ্যাঙ্করড কমেন্ট সহ সমস্ত কমেন্ট থ্রেড ফেরত দেওয়া হয়।

নমুনা প্রতিক্রিয়া

নিম্নলিখিত JSON নমুনা প্রতিক্রিয়াটি শীটের A1 সেলে (সারি ০, কলাম ০) অ্যাঙ্কর করা একটি মন্তব্য থ্রেড দেখাচ্ছে যার আইডি 0 :

{
  "spreadsheetId": "SPREADSHEET_ID",
  "sheets": [
    {
      "properties": {
        "sheetId": 0,
        "title": "Sheet1"
      },
      "commentAnchors": [
        {
          "anchorId": "ANCHOR_ID",
          "range": {
            "sheetId": 0,
            "startRowIndex": 0,
            "endRowIndex": 1,
            "startColumnIndex": 0,
            "endColumnIndex": 1
          }
        }
      ]
    }
  ],
  "comments": [
    {
      "commentId": "COMMENT_ID",
      "anchorId": "ANCHOR_ID",
      "headPost": {
        "postId": "POST_ID",
        "content": "This is a comment thread head post.",
        "contentHtml": "The content of the post as HTML.",
        "author": {
          "displayName": "DISPLAY_NAME",
          "me": true,
          "user": "users/USER"
        },
        "createTime": "2026-07-01T10:13:12Z",
        "updateTime": "2026-07-01T10:13:12Z"
      },
      "replies": [
        {
          "postId": "REPLY_POST_ID",
          "content": "This is a reply to the comment.",
          "author": {
            "displayName": "DISPLAY_NAME",
            "me": false
          },
          "createTime": "2026-07-01T10:15:00Z",
          "updateTime": "2026-07-01T10:15:00Z"
        }
      ],
      "status": "OPEN"
    }
  ],
  "commentsViewMode": "COMMENTS_VIEW_MODE_INCLUDED"
}

মন্তব্য তৈরি ও পরিচালনা করুন

আপনি spreadsheets রিসোর্সের batchUpdate মেথড ব্যবহার করে প্রোগ্রাম্যাটিকভাবে মন্তব্য বা উত্তর যোগ, সম্পাদনা এবং মুছে ফেলতে পারেন।

মন্তব্যসহ ব্যাচ আপডেট করার সময়, সম্ভাব্য আংশিক ব্যর্থতার দিকে নজর রাখা উচিত। আরও তথ্যের জন্য, ‘মন্তব্য আপডেটের অবস্থা’ দেখুন।

একটি মন্তব্য লিখুন

স্প্রেডশিটে একটি মন্তব্য থ্রেড যুক্ত করতে, InsertCommentRequest অবজেক্টটি ব্যবহার করুন। আপনাকে অবশ্যই মন্তব্যের পাঠ্য বিষয়বস্তু এবং GridCoordinate অবজেক্ট ব্যবহার করে মন্তব্যটি যেখানে অ্যাঙ্কর করা আছে সেই coordinate প্রদান করতে হবে।

নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে শীটের B2 সেলে (সারি ১, কলাম ১) ID 0 সহ একটি অনির্বাচিত মন্তব্য থ্রেড যোগ করতে হয়:

{
  "requests": [
    {
      "insertComment": {
        "content": "This is a comment added using the API.",
        "coordinate": {
          "sheetId": 0,
          "rowIndex": 1,
          "columnIndex": 1
        }
      }
    }
  ]
}

assigneeEmailAddress ফিল্ডে কোনো নির্দিষ্ট ব্যবহারকারীর ইমেল দিয়ে আপনি তাকে একটি মন্তব্য বরাদ্দ করতে পারেন:

{
  "requests": [
    {
      "insertComment": {
        "content": "Please review the data in this cell.",
        "assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
        "coordinate": {
          "sheetId": 0,
          "rowIndex": 1,
          "columnIndex": 1
        }
      }
    }
  ]
}

একটি উত্তর যোগ করুন অথবা পদক্ষেপ নিন

কোনো মন্তব্য থ্রেডের উত্তর দিতে, সেটির সমাধান করতে বা পুনরায় খুলতে, AddCommentReplyRequest অবজেক্টটি ব্যবহার করুন।

আপনাকে অবশ্যই commentId এবং সেই post প্রদান করতে হবে যেখানে উত্তরটি একটি Post অবজেক্ট দ্বারা উপস্থাপিত হয়।

Post অবজেক্টটিতে উত্তরের content থাকে এবং এতে ঐচ্ছিকভাবে একটি commentAction নির্দিষ্ট করা যায় (যার মধ্যে কমেন্ট থ্রেডটি RESOLVE বা REOPEN অ্যাকশনও অন্তর্ভুক্ত)। এটি একটি CommentActionType অবজেক্ট দ্বারা উপস্থাপিত হয়।

আপনি Post অবজেক্টে একটি নতুন assigneeEmail উল্লেখ করে একটি কমেন্ট থ্রেড পুনরায় অ্যাসাইন করতে পারেন।

নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি বিদ্যমান মন্তব্য থ্রেডে উত্তর দিতে হয়:

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "content": "Replying to the comment thread."
        }
      }
    }
  ]
}

নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি মন্তব্য থ্রেড সমাধান করতে হয় (যার জন্য content ফিল্ডের প্রয়োজন নেই):

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "commentAction": "RESOLVE"
        }
      }
    }
  ]
}

নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি মন্তব্য থ্রেড পুনরায় বরাদ্দ করতে হয়:

{
  "requests": [
    {
      "addCommentReply": {
        "commentId": "COMMENT_ID",
        "post": {
          "content": "Replying to the comment thread.",
          "assigneeEmail": "ASSIGNEE_EMAIL"
        }
      }
    }
  ]
}

একটি পোস্ট সম্পাদনা করুন

আপনার লেখা কোনো পোস্টের টেক্সট কন্টেন্ট সম্পাদনা করতে, UpdateCommentPostRequest অবজেক্টটি ব্যবহার করুন। আপনাকে অবশ্যই থ্রেডের commentId , যে পোস্টটি সম্পাদনা করতে চান তার postId এবং নতুন প্লেইন টেক্সট content উল্লেখ করতে হবে।

নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি পোস্ট সম্পাদনা করতে হয়:

{
  "requests": [
    {
      "updateCommentPost": {
        "commentId": "COMMENT_ID",
        "postId": "POST_ID",
        "content": "This is the updated comment text."
      }
    }
  ]
}

মন্তব্য এবং উত্তরগুলো মুছে ফেলুন

মন্তব্য এবং উত্তর মুছে ফেলার জন্য আপনার কাছে দুটি বিকল্প আছে:

  • একটি মন্তব্য থ্রেড মুছুন: সম্পূর্ণ CommentThread মুছে ফেলার জন্য, DeleteCommentRequest অবজেক্টটি ব্যবহার করুন। আপনি শুধুমাত্র তখনই একটি মন্তব্য থ্রেড মুছতে পারবেন, যদি আপনি CommentThread অবজেক্টের মধ্যে থাকা থ্রেডটির headPost এর লেখক হন।

  • একটি উত্তর মুছুন: একটি CommentThread থেকে কোনো নির্দিষ্ট উত্তর Post মুছে ফেলার জন্য, DeleteCommentReplyRequest অবজেক্টটি ব্যবহার করুন। আপনি শুধুমাত্র আপনার নিজের লেখা উত্তরগুলোই মুছতে পারবেন। যে উত্তর পোস্টগুলোতে commentAction বা assigneeEmail থাকে, সেগুলো আপনি মুছতে পারবেন না।

নিম্নলিখিত JSON নমুনাটি দেখায় কিভাবে একটি মন্তব্য থ্রেড মুছে ফেলা যায়:

{
  "requests": [
    {
      "deleteComment": {
        "commentId": "COMMENT_ID"
      }
    }
  ]
}

মন্তব্য আপডেট স্ট্যাটাস

যেসব অনুরোধের জন্য কমেন্ট থ্রেড সেভ করার প্রয়োজন হয় (যেমন কমেন্ট যোগ করা বা রিপ্লাই দেওয়া), সেগুলোতে আংশিক ব্যর্থতা দেখা দিতে পারে। এই ক্ষেত্রে, স্প্রেডশিট মডেলের পরিবর্তনগুলো (যেমন সেলের মান আপডেট করা বা নতুন শিট যোগ করা) সফলভাবে কমিট হলেও, এর সাথে যুক্ত কমেন্টগুলো সেভ নাও হতে পারে।

spreadsheets.batchUpdate মেথডের রেসপন্স বডিতে থাকা commentUpdateState ফিল্ডটি পরীক্ষা করে আপনি কমেন্ট আপডেটগুলো সফলভাবে প্রয়োগ হয়েছে কিনা তা যাচাই করতে পারেন। এই ফিল্ডটি একটি CommentUpdateState অবজেক্ট দ্বারা উপস্থাপিত হয়।

CommentUpdateState এ নিম্নলিখিত স্টেটগুলো ফেরত দেওয়া হয়:

  • ব্যাচ অপারেশনে কোনো মন্তব্য আপডেটের অনুরোধ করা NO_UPDATES_REQUESTED
  • ALL_SAVED : অনুরোধ করা সমস্ত মন্তব্য আপডেট সফলভাবে প্রয়োগ করা হয়েছে।
  • ALL_FAILED_UNKNOWN_REASON : অনুরোধ করা সমস্ত মন্তব্য আপডেট সেভ হতে ব্যর্থ হয়েছে, যদিও স্প্রেডশিটের অন্যান্য পরিবর্তনগুলো কমিট করা হয়ে থাকতে পারে।