我使用Google (v4)以编程方式创建/更新电子表格,并遇到以下问题:
根据文档(https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/cells#CellFormat),我将数字格式设置为CURRENCY;这将正确地将数字显示为一个数字值,前面有一个元符号(日本地区)。但是,它似乎并没有实际选择格式下拉列表上的“货币”选项,更重要的是,在下载电子表格(例如,作为.xlsx文件)时没有反映指定的格式。

这与手动选择“货币”选项不同(通过UI),在这种情况下,一旦下载,值就会正确显示。

下面是代码的相关部分:
import { google, sheets_v4 } from 'googleapis';
const sheetsApi = google.sheets({
version: 'v4',
auth: await this.getAuthClient(),
});
await sheetsApi.spreadsheets
.batchUpdate({
spreadsheetId: resource,
requestBody: {
requests: [
{
updateSpreadsheetProperties: {
fields: 'locale',
properties: {
locale: 'ja',
},
},
},
...,
{
repeatCell: {
fields: 'userEnteredFormat.numberFormat',
cell: {
userEnteredFormat: {
numberFormat: { type: 'CURRENCY' },
},
},
},
},
],
},
})
.catch((error) => {
console.log(error);
});我也尝试过设置模式(尝试了很少不同的模式),但是没有能够实际设置单元格格式,尽管显示的值是这样的。
可能是个简单的错误,但我已经坚持了一段时间了。任何帮助都将不胜感激!
发布于 2021-05-06 12:29:12
在这种情况下,我认为可能需要设置pattern的属性。因此,在本例中,修改repeatCell请求如何?
修改后的请求:
{
"repeatCell": {
"range": {,,,}, // Please set range.
"cell": {
"userEnteredFormat": {
"numberFormat": {
"type": "CURRENCY",
"pattern": "[$¥-411]#,##0.00" // <--- Added
}
}
},
"fields": "userEnteredFormat.numberFormat" // or "fields": "userEnteredFormat"
}
}注意:
参考文献:
https://stackoverflow.com/questions/67417205
复制相似问题