In Google Sheets können Nutzer zusammenarbeiten, indem sie Kommentare zu bestimmten Zellen hinzufügen.
In diesem Dokument wird beschrieben, wie Sie die Google Sheets API verwenden können, um Kommentare programmatisch zu lesen, zu erstellen, zu beantworten, zu aktualisieren oder zu löschen.
Kommentare lesen
Wenn Sie die
get Methode für die
spreadsheets Ressource
verwenden, um eine Tabelle abzurufen, werden Kommentar-Threads und Anker standardmäßig ausgelassen.
Wenn Sie Kommentare in die Antwort einbeziehen möchten, setzen Sie den
commentsViewMode
Abfrageparameter auf
COMMENTS_VIEW_MODE_INCLUDED.
Wenn der aufrufende Nutzer außerdem Zugriff auf Kommentare in der Datei hat, werden auch Kommentare zurückgegeben, wenn Sie den Abfrageparameter auf COMMENTS_VIEW_MODE_DEFAULT_FOR_CURRENT_ACCESS setzen.
In der Antwort werden sowohl die
comments
als auch die
sheets.commentAnchors
Felder zurückgegeben.
Das folgende Codebeispiel zeigt, wie Sie eine get-Anfrage verwenden, um Kommentar-Threads und ihre Anker (Bereiche) aus einer Tabelle abzurufen:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?commentsViewMode=COMMENTS_VIEW_MODE_INCLUDED&fields=spreadsheetId,comments,sheets(properties(sheetId,title),commentAnchors)
In der Antwort werden Kommentare an zwei Stellen zurückgegeben:
- Das globale
commentsArray mit denCommentThreadObjekten. - Das
sheets.commentAnchorsArray mitCommentAnchorObjekten, die Kommentaranker-IDs Zellpositionen (Bereichen) zuordnen.
Kommentare nach Bereich oder Tabelle filtern
Beim Abrufen einer Tabelle können Sie die zurückgegebenen Daten filtern, indem Sie
Bereiche (mit dem
ranges
Abfrageparameter in der spreadsheets.get Methode) oder Tabellen (mit dem
dataFilters
Feld im Anfragetext der spreadsheets.getByDataFilter Methode) angeben.
- Wenn Sie nach Bereich oder Tabellenblatt filtern: Es werden nur die Kommentar-Threads zurückgegeben, die in den angegebenen Bereichen oder Tabellenblättern verankert sind. Nicht verankerte Kommentare (z. B. Kommentare, deren ursprüngliche Zellkoordinate gelöscht wurde) sind nicht enthalten.
- Wenn Sie nicht nach Bereich oder Tabellenblatt filtern: Alle Kommentar-Threads, einschließlich nicht verankerter Kommentare, werden zurückgegeben.
Beispielantwort
Die folgende JSON-Beispielantwort zeigt einen Kommentar-Thread, der in Zelle A1 (Zeile 0, Spalte 0) in dem Tabellenblatt mit der ID 0 verankert ist:
{
"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"
}
Kommentare erstellen und verwalten
Sie können Kommentare oder Antworten programmatisch hinzufügen, bearbeiten und löschen. Verwenden Sie dazu die
batchUpdate
Methode für die
spreadsheetsRessource.
Bei Batch-Aktualisierungen mit Kommentaren sollten Sie auf mögliche Teilausfälle achten. Weitere Informationen finden Sie unter Status der Kommentaraktualisierung.
Kommentar einfügen
Verwenden Sie das
InsertCommentRequest
Objekt, um einen Kommentar-Thread in eine Tabelle einzufügen. Sie müssen den Kommentartext und die
coordinate
angeben, an der der Kommentar mit einem
GridCoordinate
Objekt verankert ist.
Das folgende JSON-Beispiel zeigt, wie Sie einen nicht zugewiesenen Kommentar-Thread in Zelle B2 (Zeile 1, Spalte 1) in dem Tabellenblatt mit der ID 0 hinzufügen:
{
"requests": [
{
"insertComment": {
"content": "This is a comment added using the API.",
"coordinate": {
"sheetId": 0,
"rowIndex": 1,
"columnIndex": 1
}
}
}
]
}
Sie können einen Kommentar einem bestimmten Nutzer zuweisen, indem Sie seine E-Mail-Adresse im
assigneeEmailAddress
Feld angeben:
{
"requests": [
{
"insertComment": {
"content": "Please review the data in this cell.",
"assigneeEmailAddress": "ASSIGNEE_EMAIL_ADDRESS",
"coordinate": {
"sheetId": 0,
"rowIndex": 1,
"columnIndex": 1
}
}
}
]
}
Antwort hinzufügen oder Aktion ausführen
Verwenden Sie das
AddCommentReplyRequest
Objekt, um auf einen Kommentar-Thread zu antworten, ihn zu schließen oder wieder zu öffnen.
Sie müssen die commentId und die
post
angeben, wobei die Antwort durch ein
Post-Objekt dargestellt wird.
Das Objekt Post enthält die Antwort content und kann optional eine
commentAction
angeben, einschließlich der Aktion zum RESOLVE oder REOPEN des Kommentar-Threads. Es wird durch ein
ein
CommentActionType
Objekt dargestellt.
Sie können einen Kommentar-Thread auch neu zuweisen, indem Sie eine neue assigneeEmail im Objekt Post angeben.
Das folgende JSON-Beispiel zeigt, wie Sie auf einen vorhandenen Kommentar-Thread antworten:
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"content": "Replying to the comment thread."
}
}
}
]
}
Das folgende JSON-Beispiel zeigt, wie Sie einen Kommentar-Thread schließen (das Feld content ist nicht erforderlich):
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"commentAction": "RESOLVE"
}
}
}
]
}
Das folgende JSON-Beispiel zeigt, wie Sie einen Kommentar-Thread neu zuweisen:
{
"requests": [
{
"addCommentReply": {
"commentId": "COMMENT_ID",
"post": {
"content": "Replying to the comment thread.",
"assigneeEmail": "ASSIGNEE_EMAIL"
}
}
}
]
}
Post bearbeiten
Verwenden Sie das
UpdateCommentPostRequest
Objekt, um den Text eines von Ihnen erstellten Posts zu bearbeiten. Sie müssen die commentId des Threads, die postId des zu bearbeitenden Posts und den neuen Nur-Text-content angeben.
Das folgende JSON-Beispiel zeigt, wie Sie einen Post bearbeiten:
{
"requests": [
{
"updateCommentPost": {
"commentId": "COMMENT_ID",
"postId": "POST_ID",
"content": "This is the updated comment text."
}
}
]
}
Kommentare und Antworten löschen
Sie haben zwei Möglichkeiten, Kommentare und Antworten zu löschen:
Kommentar-Thread löschen: Verwenden Sie das Objekt
DeleteCommentRequest, um einen gesamtenCommentThreadzu entfernen. Sie können einen Kommentar-Thread nur löschen, wenn Sie der Autor des ThreadsheadPostim ObjektCommentThreadsind.Antwort löschen: Verwenden Sie das
DeleteCommentReplyRequestObjekt, um einen bestimmten Antwort-Postaus einemCommentThreadzu löschen. Sie können nur Antworten löschen, die Sie selbst verfasst haben. Antwort-Posts, die einecommentActionoder eineassigneeEmailenthalten, können nicht gelöscht werden.
Das folgende JSON-Beispiel zeigt, wie Sie einen Kommentar-Thread löschen:
{
"requests": [
{
"deleteComment": {
"commentId": "COMMENT_ID"
}
}
]
}
Status der Kommentaraktualisierung
Bei Anfragen, bei denen Kommentar-Threads gespeichert werden müssen (z. B. beim Einfügen von Kommentaren oder Hinzufügen von Antworten), kann es zu Teilausfällen kommen. In diesen Fällen werden die Änderungen am Tabellenmodell (z. B. Aktualisieren von Zellwerten oder Hinzufügen von Tabellen) möglicherweise erfolgreich übernommen, die zugehörigen Kommentare können aber nicht gespeichert werden.
Sie können prüfen, ob Kommentaraktualisierungen erfolgreich angewendet wurden. Prüfen Sie dazu das
commentUpdateState
Feld im Antworttext der spreadsheets.batchUpdate Methode. Das Feld
wird durch ein
CommentUpdateState
Objekt dargestellt.
Die folgenden Status werden in CommentUpdateState zurückgegeben:
NO_UPDATES_REQUESTED: Bei der Batch-Operation wurden keine Kommentaraktualisierungen angefordert.ALL_SAVED: Alle angeforderten Kommentaraktualisierungen wurden erfolgreich angewendet.ALL_FAILED_UNKNOWN_REASON: Alle angeforderten Kommentaraktualisierungen konnten nicht gespeichert werden, obwohl andere Tabellenänderungen möglicherweise übernommen wurden.