[英]Changing column format in google sheets by gspread and google sheets API
我正在使用 gspread 并且我正在寻找一种通过脚本更改列格式的正确方法。 我有一个包含持续时间的列。 我想将整个列的格式更改为duration
。 在 Google UI 中,我可以标记整个列,然后单击 format,然后单击 number 并设置duration 。 是否可以通过 gspread/google sheet API 来实现?
编辑
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)")
如果我的理解是正确的,这个答案怎么样? 请将此视为几种可能的答案之一。
batch_update(body)
。在此修改中,使用了问题中脚本的顶部。
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)
1:23:45
时,运行上述脚本(格式模式为[m]:s
.)时, 1:23:45
变成83:45
。
1:23:45
的格式模式是[h]:mm:ss
。[s]
,则1:23:45
变为5025
。sys.argv[1]
的电子表格名称中第一个选项卡上“A”列的持续时间格式更改为[m]:s
。对于持续时间的模式,官方文档是这样说的。
[h+]
:一段时间内经过的小时数。 字母数表示最小位数(添加前导 0)。[m+]
:一段时间内经过的分钟数。 字母数表示最小位数(添加前导 0)。[s+]
:一段时间内经过的秒数。 字母数表示最小位数(添加前导 0)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.