Python 通过gspread和googlesheetsapi更改googlesheets中的列格式
我正在使用gspread,我正在寻找通过脚本更改列格式的正确方法。我有一个有时间段的专栏。我想将整个列的格式更改为Python 通过gspread和googlesheetsapi更改googlesheets中的列格式,python,google-sheets-api,gspread,Python,Google Sheets Api,Gspread,我正在使用gspread,我正在寻找通过脚本更改列格式的正确方法。我有一个有时间段的专栏。我想将整个列的格式更改为duration。在GoogleUI中,我可以标记整个列,然后单击格式、数字和设置持续时间。可以通过gspread/googlesheetsapi实现吗 编辑 client = gspread.authorize(credentials) try: sheet = client.open(sys.argv[1]).sheet1 except (gspread.Spreadshe
duration
。在GoogleUI中,我可以标记整个列,然后单击格式、数字和设置持续时间。可以通过gspread/googlesheetsapi实现吗
编辑
client = gspread.authorize(credentials)
try:
sheet = client.open(sys.argv[1]).sheet1
except (gspread.SpreadsheetNotFound, IndexError):
print("Spreadsheet not found")
sys.exit()
try:
tags = sheet.col_values(13)
tags.remove('Tags')
unique_tags = list(dict.fromkeys(tags))
except ValueError:
print("Your spreadsheet cannot be modified and should contain original
columns from toggle reports.")
sys.exit()
START_INDEX = 7
sheet.update_cell(6, 15, "SUM")
for tag in unique_tags:
sheet.update_cell(START_INDEX, 15, tag)
sheet.update_cell(START_INDEX, 16, "=SUMIF(M2:M; " + '"' + tag + '"' + ";
L2:L)")
START_INDEX += 1
sheet.update_cell(6, 16, "=SUM(P7:P15)")
- 您想更改Google电子表格中列的格式。
- 在您的情况下,列中有持续时间的值。您想更改持续时间的格式
- 您希望使用gspread和python来实现这一点
- 您已经能够使用带有gspread的Sheets API获取和放置电子表格的值
- 为了更改列的格式,使用了Sheets API中的spreadsheets.batchUpdate方法和spreadsheets.batchUpdate方法的“RepeatCellRequest”。在gspread,电子表格.batchUpdate的方法可用作
批量更新(正文)
try:
spreadsheet = client.open(sys.argv[1]) # Modified
sheet = spreadsheet.sheet1 # Added
except (gspread.SpreadsheetNotFound, IndexError):
print("Spreadsheet not found")
sys.exit()
# I added below script.
requests = [{
"repeatCell": {
"range": {
"startColumnIndex": 0,
"endColumnIndex": 1,
"sheetId": sheet._properties['sheetId']
},
"cell": {
"userEnteredFormat": {
"numberFormat": {
"type": "TIME",
"pattern": "[m]:s"
}
}
},
"fields": "userEnteredFormat.numberFormat"
}
}]
body = {
'requests': requests
}
res = spreadsheet.batch_update(body)
print(res)
- 作为测试用例,当列“a”(单元“A1”)的行1具有
作为持续时间时,当运行上述脚本(格式模式为1:23:45
)时,[m]:s
变为1:23:45
。83:45
- 顺便说一下,
的格式模式作为持续时间是1:23:45
[h]:mm:ss
- 顺便说一下,
- 如果格式模式为
,[s]
变为1:23:45
5025
- 使用此脚本时,我建议使用示例电子表格。因为脚本更改了格式。
- 在上面修改的脚本中,
电子表格名称中第一个选项卡上列“A”的持续时间格式更改为sys.argv[1]
[m]:s
- 这是一个简单的示例脚本。因此,请根据您的实际情况进行修改。特别是,请根据您的实际情况修改格式模式。因为我不确定你的实际情况
- 关于持续时间的模式,官方文件如下所示
:一段时间内经过的小时数。字母数表示最小位数(添加前导0)[h+]
:一段时间内经过的分钟数。字母数表示最小位数(添加前导0)[m+]
:持续时间内经过的秒数。字母数表示最小位数(添加前导0)[s+]