首页 > 解决方案 > 使用 Google Sheets API (v4) 格式化单元格(输入 Duration)

问题描述

我正在使用 Google Sheets API (v4) 以编程方式创建/更新电子表格并遇到以下问题:

我通过 JavaDoc 看到将单元格设置为 NumberFormat,比如 CURRENCY,我可以将 NumberFormat 类型和模式设置为:

"cell": {
  "userEnteredFormat": {
    "numberFormat": {
      "type": "CURRENCY",
      "pattern": "[$¥-411]#,##0.00"  // <--- Added
    }
  }
},
"fields": "userEnteredFormat.numberFormat"  // or "fields": "userEnteredFormat"

但是,我没有看到将 NumberFormat 类型设置为 DURATION 的选项。我发现的可接受的枚举包括:NUMBER_FORMAT_TYPE_UNSPECIFIED、TEXT、NUMBER、PERCENT、CURRENCY、DATE、TIME、DATE_TIME、SCIENTIFIC。有什么方法可以将单元格格式设置为 Duration 类型,模仿您可以通过 UI 执行的操作?

这显示了在 UI 上看到的用于设置单元格格式类型的内容

标签: javagoogle-sheetsgoogle-sheets-api

解决方案


您需要获取持续时间的格式标记并将其用作请求正文中的模式。

要做到这一点:

  1. 突出显示任何单元格并将其单元格格式更改为Duration
  2. 在同一单元格中,导航到数字->更多格式->自定义数字格式
  3. 复制现有的格式标记。持续时间应该是[h]:mm:ss.
  4. pattern将请求正文中的值替换为[h]:mm:ss
  5. 将 的值替换typeDATE_TIME

您的请求正文应如下所示:

"cell":{
   "userEnteredFormat":{
      "numberFormat":{
         "pattern": "[h]:mm:ss",
         "type": "DATE_TIME"
      }
   }
}

前:

在此处输入图像描述

后:

在此处输入图像描述

参考:


推荐阅读