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

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: टिप्पणी के अपडेट के सभी अनुरोध सेव नहीं हो पाए. भले ही, स्प्रेडशीट में किए गए अन्य बदलाव सेव हो गए हों.