smartsheet API 货币单元格格式
smartsheet API cell format of currency
我能够通过 API 和紧凑格式字符串 cell.format 成功格式化单元格,但货币格式的单元格除外。
我想看一个 cell.format 的示例,该示例用于提交 123456 作为 value/display 值和一个 cell.format 字符串,使其显示为 $1,234.56
根据我找到的薄文档,我的最佳猜测是“,13,2,1,2,”不清楚 decimalCount 字段是否需要如果设置了 numberFormat,则将被设置。无论哪种方式,我都没有成功地将值格式化为类似于美国货币的任何东西。
您使用的格式字符串是正确的,但您使用的值是一个整数。这将被格式化为 3,456.00
。 decimalCount
属性 不改变单元格的数值(移动小数点),而是设置小数点后显示多少位。
有关可能的完整列表,请参阅 API docs。或者,您可以在 Web 界面中设置单元格的格式,然后通过 API 检索格式以查看需要的正确字符串。
如果您想更改单元格的数值,使其除以 100,您可以应用公式,或在代码内部更改值并将新值设置回单元格。
我已经成功测试了您描述的场景如下:
- 获取包含我要格式化的数值的单元格的行(以便我可以检查该单元格中的初始 value/format,然后将其与更新后返回的内容进行比较单元格格式)。
GET ROW(单元格格式更新前)
request URI: https://api.smartsheet.com/2.0/sheets/3826787173066628/rows/3277051783341956?include=format
abbreviated response showing data for the cell I'm interested in:
{
"id": 3277051783341956,
...
"cells": [
...
{
"columnId": 310981806057348,
"value": 1234.56,
"displayValue": "1234.56",
"format": ",,1,,,,,,,22,,,,,,,"
}
]
}
单元格值最初在 Smartsheet 中看起来像这样 UI:
- 更新单元格格式,将单元格值格式化为美国货币,保留 2 位小数和一个逗号分隔符。
更新行(单元格格式)
request URI: https://api.smartsheet.com/2.0/sheets/3826787173066628/rows
request body:
[
{
"id": "3277051783341956",
"cells": [
{"columnId": "310981806057348", "value": 1234.56, "format": ",,,,,,,,,,,13,2,1,2,,"}
]
}
]
- 再次检查单元格数据,现在我已经更新了格式。
GET ROW(更新单元格格式后)
request URI: https://api.smartsheet.com/2.0/sheets/3826787173066628/rows/3277051783341956?include=format
abbreviated response showing data for the cell I'm interested in:
{
"id": 3277051783341956,
...
"cells": [
...
{
"columnId": 310981806057348,
"value": 1234.56,
"displayValue": ",234.56",
"format": ",,,,,,,,,,,13,2,1,2,,"
}
]
}
Smartsheet 中的单元格值现在看起来像这样(根据需要)UI:
此示例验证用于您描述的场景的格式是否正确:",,,,,,,,,,,13,2,1,2,,"
另请注意,单元格的单元格 value
需要包含 2 个小数位 - 因此如果您拥有的原始值为 123456
并且您希望该值出现在单元格中作为 ,234.56
那么您的集成需要将原始值除以 100 并将其设置为 Update Row (cell) 请求中的单元格值,以获得所需的结果。
我能够通过 API 和紧凑格式字符串 cell.format 成功格式化单元格,但货币格式的单元格除外。
我想看一个 cell.format 的示例,该示例用于提交 123456 作为 value/display 值和一个 cell.format 字符串,使其显示为 $1,234.56
根据我找到的薄文档,我的最佳猜测是“,13,2,1,2,”不清楚 decimalCount 字段是否需要如果设置了 numberFormat,则将被设置。无论哪种方式,我都没有成功地将值格式化为类似于美国货币的任何东西。
您使用的格式字符串是正确的,但您使用的值是一个整数。这将被格式化为 3,456.00
。 decimalCount
属性 不改变单元格的数值(移动小数点),而是设置小数点后显示多少位。
有关可能的完整列表,请参阅 API docs。或者,您可以在 Web 界面中设置单元格的格式,然后通过 API 检索格式以查看需要的正确字符串。
如果您想更改单元格的数值,使其除以 100,您可以应用公式,或在代码内部更改值并将新值设置回单元格。
我已经成功测试了您描述的场景如下:
- 获取包含我要格式化的数值的单元格的行(以便我可以检查该单元格中的初始 value/format,然后将其与更新后返回的内容进行比较单元格格式)。
GET ROW(单元格格式更新前)
request URI: https://api.smartsheet.com/2.0/sheets/3826787173066628/rows/3277051783341956?include=format
abbreviated response showing data for the cell I'm interested in:
{
"id": 3277051783341956,
...
"cells": [
...
{
"columnId": 310981806057348,
"value": 1234.56,
"displayValue": "1234.56",
"format": ",,1,,,,,,,22,,,,,,,"
}
]
}
单元格值最初在 Smartsheet 中看起来像这样 UI:
- 更新单元格格式,将单元格值格式化为美国货币,保留 2 位小数和一个逗号分隔符。
更新行(单元格格式)
request URI: https://api.smartsheet.com/2.0/sheets/3826787173066628/rows
request body:
[
{
"id": "3277051783341956",
"cells": [
{"columnId": "310981806057348", "value": 1234.56, "format": ",,,,,,,,,,,13,2,1,2,,"}
]
}
]
- 再次检查单元格数据,现在我已经更新了格式。
GET ROW(更新单元格格式后)
request URI: https://api.smartsheet.com/2.0/sheets/3826787173066628/rows/3277051783341956?include=format
abbreviated response showing data for the cell I'm interested in:
{
"id": 3277051783341956,
...
"cells": [
...
{
"columnId": 310981806057348,
"value": 1234.56,
"displayValue": ",234.56",
"format": ",,,,,,,,,,,13,2,1,2,,"
}
]
}
Smartsheet 中的单元格值现在看起来像这样(根据需要)UI:
此示例验证用于您描述的场景的格式是否正确:",,,,,,,,,,,13,2,1,2,,"
另请注意,单元格的单元格 value
需要包含 2 个小数位 - 因此如果您拥有的原始值为 123456
并且您希望该值出现在单元格中作为 ,234.56
那么您的集成需要将原始值除以 100 并将其设置为 Update Row (cell) 请求中的单元格值,以获得所需的结果。