टिप्पणियां प्रबंधित करें

Google Sheets में, उपयोगकर्ता किसी खास सेल पर टिप्पणियां जोड़कर एक साथ काम कर सकते हैं.

इस दस्तावेज़ में, Google Sheets API का इस्तेमाल करके, प्रोग्राम की मदद से टिप्पणियां पढ़ने, बनाने, उनका जवाब देने, अपडेट करने या मिटाने का तरीका बताया गया है.

टिप्पणियां पढ़ना

किसी स्प्रेडशीट को वापस पाने के लिए, 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 ऑब्जेक्ट शामिल होते हैं. ये ऑब्जेक्ट, टिप्पणी के ऐंकर आईडी को सेल की जगहों (ग्रिड रेंज) से मैप करते हैं.

रेंज या शीट के हिसाब से टिप्पणियां फ़िल्टर करना

स्प्रेडशीट वापस पाने के दौरान, लौटाए गए डेटा को फ़िल्टर किया जा सकता है. इसके लिए, रेंज तय करें. इसके लिए, ranges क्वेरी पैरामीटर का इस्तेमाल करें. यह spreadsheets.get तरीके में होता है. इसके अलावा, शीट तय करने के लिए, dataFilters फ़ील्ड का इस्तेमाल करें. यह spreadsheets.getByDataFilter तरीके के अनुरोध के मुख्य हिस्से में होता है.

  • अगर रेंज या शीट के हिसाब से फ़िल्टर किया जाता है: सिर्फ़ वे टिप्पणी के थ्रेड दिखते हैं जो तय की गई रेंज या शीट में ऐंकर किए गए हैं. बिना ऐंकर की गई टिप्पणियां (जैसे, वे टिप्पणियां जिनकी मूल सेल के कोऑर्डिनेट मिटा दिए गए हैं) शामिल नहीं की जाती हैं.
  • अगर रेंज या शीट के हिसाब से फ़िल्टर नहीं किया जाता है: बिना ऐंकर की गई टिप्पणियों के साथ-साथ, टिप्पणी के सभी थ्रेड दिखते हैं.

रिस्पॉन्स का उदाहरण

यहां दिए गए JSON के सैंपल रिस्पॉन्स में, आईडी 0 वाली शीट पर सेल A1 (लाइन 0, कॉलम 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"
}

टिप्पणियां बनाना और मैनेज करना

आप प्रोग्राम की मदद से टिप्पणियां या जवाब जोड़े, उनमें बदलाव किए, और मिटाए जा सकते हैं. इसके लिए, batchUpdate तरीके का इस्तेमाल करें. यह तरीका spreadsheets संसाधन पर उपलब्ध है.

टिप्पणियों से जुड़े बैच अपडेट करते समय, आपको आंशिक तौर पर होने वाली गड़बड़ियों पर नज़र रखनी चाहिए. ज़्यादा जानकारी के लिए, टिप्पणी के अपडेट की स्थिति देखें.

कोई टिप्पणी जोड़ना

किसी स्प्रेडशीट में टिप्पणी का थ्रेड जोड़ने के लिए, InsertCommentRequest ऑब्जेक्ट का इस्तेमाल करें. आपको टिप्पणी का टेक्स्ट कॉन्टेंट और वह coordinate देना होगा जहां टिप्पणी को GridCoordinate ऑब्जेक्ट का इस्तेमाल करके ऐंकर किया गया है.

यहां दिए गए JSON के सैंपल में, आईडी 0 वाली शीट पर सेल B2 (लाइन 1, कॉलम 1) में, असाइन न किया गया टिप्पणी का थ्रेड जोड़ने का तरीका बताया गया है:

{
  "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 ऑब्जेक्ट का इस्तेमाल करें. टिप्पणी का थ्रेड सिर्फ़ तब मिटाया जा सकता है, जब आप थ्रेड के headPost CommentThread ऑब्जेक्ट में लेखक हों.

  • कोई जवाब मिटाना: कोई खास जवाब Post मिटाने के लिए CommentThread, DeleteCommentReplyRequest ऑब्जेक्ट का इस्तेमाल करें. सिर्फ़ वे जवाब मिटाए जा सकते हैं जिन्हें आपने लिखा है. जवाब के उन पोस्ट को नहीं मिटाया जा सकता जिनमें commentAction या assigneeEmail शामिल है.

यहां दिए गए JSON के सैंपल में, टिप्पणी का थ्रेड मिटाने का तरीका बताया गया है:

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

टिप्पणी के अपडेट की स्थिति

टिप्पणी के थ्रेड सेव करने के अनुरोधों में, आंशिक तौर पर गड़बड़ियां हो सकती हैं. जैसे, टिप्पणियां जोड़ना या जवाब जोड़ना. इन मामलों में, स्प्रेडशीट मॉडल में किए गए बदलाव (जैसे, सेल की वैल्यू अपडेट करना या शीट जोड़ना) सेव हो सकते हैं. हालांकि, उनसे जुड़ी टिप्पणियां सेव नहीं हो सकती हैं.

commentUpdateState फ़ील्ड की जांच करके, यह पुष्टि की जा सकती है कि टिप्पणी के अपडेट सेव हुए हैं या नहीं.spreadsheets.batchUpdate इस फ़ील्ड को CommentUpdateState ऑब्जेक्ट के तौर पर दिखाया जाता है.

CommentUpdateState में ये स्थितियां दिखती हैं:

  • NO_UPDATES_REQUESTED: बैच ऑपरेशन में, टिप्पणी के अपडेट का कोई अनुरोध नहीं किया गया.
  • ALL_SAVED: टिप्पणी के अपडेट के सभी अनुरोध सेव हो गए हैं.
  • ALL_FAILED_UNKNOWN_REASON: टिप्पणी के अपडेट के सभी अनुरोध सेव नहीं हुए. भले ही, स्प्रेडशीट में किए गए अन्य बदलाव सेव हो गए हों.