如何使用sheets.spreadsheets.batchUpdate()来应用格式?

时间:2017-04-02 02:26:53

标签: google-api-client google-api-nodejs-client

我正在尝试自动将新格式应用于我的电子表格,但是虽然它似乎没有导致任何错误,但它无效。

我的目标是将持续时间格式应用于电子表格的G和H列(索引6和7)。我自动使用不带括号的格式的字符串数据更新电子表格:

[D]:[H]:[M]

其中D,H和M可以是单数字或双数字。我希望它在电子表格中没有括号的情况下以下列格式显示:

[hh]:[mm]:[ss]

每列中始终至少有两位数字。但是,无论我请求什么格式,电子表格似乎都会自动选择格式,并选择十进制数字格式。如何使用batchUpdate()函数将工作持续时间格式应用于这两列?

我的代码尝试如下。我使用的是Node.js Google API客户端库。

sheets.spreadsheets.batchUpdate({
  spreadsheetId: '1AakOf_W90JdAtL0R8XeMmacWrnBx8wLKrMCdHdnNmhM',

  resource: {
    requests: [{
      updateCells:{
        range: {
          startColumnIndex: 6,
          endColumnIndex: 8
        },
        'fields': 'userEnteredFormat/numberFormat(pattern,type),effectiveFormat/numberFormat(pattern,type)',
          rows:[{
            values:[{
              userEnteredFormat:{
                numberFormat:{
                  pattern: '[hh]:[mm]:[ss]',
                  type: 'TIME'
                }
              },
              effectiveFormat:{
                numberFormat:{
                  pattern: '[hh]:[mm]:[ss]',
                  type: 'TIME'
                }
              }
            }]
          }]
        }
      }
    ]
  }
}, function(err, response, responseBody){
  if(err){
    console.log(err);
    console.log(err.code);
  }
});

1 个答案:

答案 0 :(得分:2)

似乎问题在于电子表格中列的索引。在编写此代码时,我假设列从零开始编制索引。但是,索引似乎从-1开始,因为G和H列实际上由索引5和6表示。