我正在查看 CellEntry API (https://developers.google.com/gdata/javadoc/com/google/gdata/data/spreadsheet/CellEntry) 以了解如何向单元格,但看不到像“addComment()”这样的明显内容。
有人有想法吗?
谢谢
我正在查看 CellEntry API (https://developers.google.com/gdata/javadoc/com/google/gdata/data/spreadsheet/CellEntry) 以了解如何向单元格,但看不到像“addComment()”这样的明显内容。
有人有想法吗?
谢谢
使用 google sheet API v4,您可以使用电子表格.batchUpdate 设置注释。示例 JavaScript SDK:
var requests = [];
requests.push({
"repeatCell": {
"range": {
"sheetId": yourSheetId,
"startRowIndex": 1,
"endRowIndex": 2,
"startColumnIndex": 0,
"endColumnIndex": 1
},
"cell": {
note: "Your note"
},
"fields": "note"
}
});
gapi.client.sheets.spreadsheets.batchUpdate({
spreadsheetId: yourDocumentId,
requests: requests
}).then(function(response) {
console.log(response);
callback();
});
基于Lars Gunnar Vik的答案,这里有一个 Python 示例。
相关的代码在这里:
body = {
"requests": [
{
"repeatCell": {
"range": {
"sheetId": 1704890600, # this is the end bit of the url
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1,
},
"cell": {"note": "Hey, I'm a comment!"},
"fields": "note",
}
}
]
}
result = (
service.spreadsheets()
.batchUpdate(spreadsheetId=SAMPLE_SPREADSHEET_ID, body=body)
.execute()
)
您可以通过重复列表中的对象来添加大量注释"requests": []
。
需要注意的一些重要事项是:
"sheetId"
是 url 中的结束编号下面是一个写评论的完整程序:
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
# If modifying these scopes, delete the file token.pickle.
SCOPES = ["*", "https://www.googleapis.com/auth/spreadsheets"]
# The ID and range of a sample spreadsheet.
SAMPLE_SPREADSHEET_ID = "YOUR SPREADSHEET ID"
def main():
"""Shows basic usage of the Sheets API.
Prints values from a sample spreadsheet.
"""
creds = None
# The file token.pickle stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists("token.pickle"):
with open("token.pickle", "rb") as token:
creds = pickle.load(token)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
"credentials.json", SCOPES
)
try:
creds = flow.run_local_server()
except OSError as e:
print(e)
creds = flow.run_console()
# Save the credentials for the next run
with open("token.pickle", "wb") as token:
pickle.dump(creds, token)
service = build("sheets", "v4", credentials=creds)
# add a comment
body = {
"requests": [
{
"repeatCell": {
"range": {
"sheetId": 1704890600, # this is the end bit of the url
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1,
},
"cell": {"note": "Hey, I'm a comment!"},
"fields": "note",
}
}
]
}
result = (
service.spreadsheets()
.batchUpdate(spreadsheetId=SAMPLE_SPREADSHEET_ID, body=body)
.execute()
)
print("{0} cells updated.".format(result.get("totalUpdatedCells")))
if __name__ == "__main__":
main()
您需要添加自己的电子表格 ID
根据谷歌的说法,它还没有在 API 中。