Google表格“repeatCell”从现有单元格中删除格式

时间:2018-06-16 12:57:27

标签: python google-sheets-api

我正试图在Google表格中复制一些简单的击键。我想将整个工作表更改为字体Balthazar和尺寸11。我可以通过ctrl + a执行此操作,然后在下拉列表中选择字体和大小。但是,我想要1000张。

我的问题是,当我使用以下代码执行此操作时,它会删除单元格中的现有格式。我该如何避免?

这是我的代码:

 align=None
 fontFamily='balthazar'
 fontSize = 11
 data={
          "requests": 
          [
            {
              "repeatCell": 
              {
                "cell": 
                {
                    "userEnteredFormat": 
                        { "horizontalAlignment": align ,   #'CENTER','LEFT','RIGHT',
                          "textFormat":  { 
                            "fontFamily": fontFamily,
                            "fontSize":  fontSize
                          }
                      }
                },
                "range": 
                {
                  "sheetId": sheetId,
                  "startRowIndex": startRowIndex,
                  "endRowIndex": endRowIndex,
                  "startColumnIndex": startColumnIndex,
                  "endColumnIndex": endColumnIndex
                },
                "fields": "userEnteredFormat"
              }
            }
          ]
        }

1 个答案:

答案 0 :(得分:2)

您想添加新格式(例如,horizo​​ntalAlignment和textFormat),而所有单元格的原始格式都是 NOT 修改。即,当" A1"具有红色背景颜色,即使请求正文添加了新格式,您也不想更改背景颜色。如果我的理解是正确的,那么这个修改怎么样?

来自:

"fields": "userEnteredFormat"

致:

"fields": "userEnteredFormat/textFormat,userEnteredFormat/horizontalAlignment"

通过此修改,只能修改horizontalAlignmenttextFormat

如果我误解了你的问题,我很抱歉。

编辑:

我知道您只想更改字体系列和字体大小。你能试试这个领域吗?请仅修改请求正文的字段。

"fields": "userEnteredFormat/textFormat/fontFamily,userEnteredFormat/textFormat/fontSize"

补充:

The document of Sheets API表示fields是"字符串(FieldMask格式)"。所以上面的值也可以写成如下。

"fields": "userEnteredFormat.textFormat.fontFamily,userEnteredFormat.textFormat.fontSize"