【问题标题】:Formatting cells with the Google Sheets API (v4)使用 Google Sheets API (v4) 格式化单元格
【发布时间】:2021-05-06 11:27:13
【问题描述】:

我正在使用 Google Sheets API (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);
  });

我也尝试设置模式(尝试了几种不同的模式),但无法实际设置单元格格式,尽管值显示为这样。

可能是一个简单的错误,但我已经坚持了一段时间......任何帮助将不胜感激!

【问题讨论】:

    标签: javascript node.js excel google-sheets google-sheets-api


    【解决方案1】:

    在这种情况下,我认为可能需要设置pattern 的属性。那么在这种情况下,如何修改你对repeatCell的请求如下?

    修改请求:

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

    注意:

    • 在我的环境中,当上述修改请求用于 batchUpdate 方法时,我可以确认“货币”已被选中。

    参考资料:

    【讨论】:

    • 你是救生员,田池!实际上我自己尝试了几种模式(包括他们文档中写的那种),但未能使其正常工作;我想首先了解模式会有所帮助哈哈。再次感谢!
    • @delafuente-ricardo 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2021-04-20
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多