如何在 google 工作表中显示 formattedValue 而不是 userEnteredValue?
How to show a formattedValue instead of the userEnteredValue in google sheets?
我一直在尝试在服务帐户的 google 工作表的单元格中添加一个值,并向查看者显示格式化的文本。例如,该值可以是 1,但我会显示 "John" 而不是它。
所以我按照文档在 batch_update 中找到了请求 updateCell,其中有一个选项可以显示 "formattedValue".
formattedValue
string
The formatted value of the cell. This is the value as it's shown to
the user. This field is read-only.
这就是我尝试过的-
req = []
req.append({
"updateCells": {
"rows": [
{
"values": [
{
"userEnteredValue": {
"numberValue": 17
},
"formattedValue": "ThisShouldBeShownToTheUser",
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"verticalAlignment": "MIDDLE"
},
}
]
}
],
"fields": "*",
"range": {
"sheetId": sheet.get_worksheet(0).id,
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1
}
}
})
sheet.batch_update({"requests":req})
但它不起作用并显示 userEnteredValue。我究竟做错了什么?或者这不是 formattedValue 应该做的?如果是这样,那我应该怎么做才能完成我的任务?
- 您想将
17
的值作为原始值,并希望将 ThisShouldBeShownToTheUser
显示为单元格中的显示值。
- 您想通过 python 使用 gspread 来实现此目的。
如果我的理解是正确的,这个答案怎么样?
修改点:
- 为了达到上述目的,请使用
numberFormat
代替formattedValue
。
当你的request body修改后,变成如下。
修改后的请求正文:
req.append({
"updateCells": {
"rows": [{
"values": [{
"userEnteredValue": {
"numberValue": 17
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"verticalAlignment": "MIDDLE",
"numberFormat": {
"pattern": "\"ThisShouldBeShownToTheUser\"",
"type": "NUMBER"
}
}
}]
}],
"fields": "*",
"range": {
"sheetId": sheet.get_worksheet(0).id,
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1
}
}
})
注:
- 关于
formattedValue
,例如,将日期对象放入单元格并设置日期的格式时,可以使用formattedValue
而不是日期对象来检索显示值。我认为这与getDisplayValue()
的方法相同。 Ref
参考文献:
我一直在尝试在服务帐户的 google 工作表的单元格中添加一个值,并向查看者显示格式化的文本。例如,该值可以是 1,但我会显示 "John" 而不是它。 所以我按照文档在 batch_update 中找到了请求 updateCell,其中有一个选项可以显示 "formattedValue".
formattedValue
string
The formatted value of the cell. This is the value as it's shown to the user. This field is read-only.
这就是我尝试过的-
req = []
req.append({
"updateCells": {
"rows": [
{
"values": [
{
"userEnteredValue": {
"numberValue": 17
},
"formattedValue": "ThisShouldBeShownToTheUser",
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"verticalAlignment": "MIDDLE"
},
}
]
}
],
"fields": "*",
"range": {
"sheetId": sheet.get_worksheet(0).id,
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1
}
}
})
sheet.batch_update({"requests":req})
但它不起作用并显示 userEnteredValue。我究竟做错了什么?或者这不是 formattedValue 应该做的?如果是这样,那我应该怎么做才能完成我的任务?
- 您想将
17
的值作为原始值,并希望将ThisShouldBeShownToTheUser
显示为单元格中的显示值。 - 您想通过 python 使用 gspread 来实现此目的。
如果我的理解是正确的,这个答案怎么样?
修改点:
- 为了达到上述目的,请使用
numberFormat
代替formattedValue
。
当你的request body修改后,变成如下。
修改后的请求正文:
req.append({
"updateCells": {
"rows": [{
"values": [{
"userEnteredValue": {
"numberValue": 17
},
"userEnteredFormat": {
"horizontalAlignment": "CENTER",
"verticalAlignment": "MIDDLE",
"numberFormat": {
"pattern": "\"ThisShouldBeShownToTheUser\"",
"type": "NUMBER"
}
}
}]
}],
"fields": "*",
"range": {
"sheetId": sheet.get_worksheet(0).id,
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1
}
}
})
注:
- 关于
formattedValue
,例如,将日期对象放入单元格并设置日期的格式时,可以使用formattedValue
而不是日期对象来检索显示值。我认为这与getDisplayValue()
的方法相同。 Ref