如何在Google表格的Python中使用wrap_strategy?

时间:2019-05-02 23:14:37

标签: python google-sheets google-sheets-api gspread

我有一个python代码,该代码使用drive和sheet api列出文件夹内的文件。我在此文件夹中有多个Google工作表,其中一些在文本之间有空格,如图片中给出的。我想更改文本换行以使所有单元格溢出,即使用Google Sheet API的python中的sheet对象。我可以看到有一种方法(wrap_strategy)将其设置为overflow_cell,但是我不知道如何使用它。在这种情况下,有人可以帮忙吗?

我可以在应用脚本中看到文档,但不能使用python。

def process_file(file):
    file["name"] = file["name"] + '.' + file["id"] #prefix the file name 
    print(file["name"])
sheet = open_sheet(file['id'])
if sheet is None:
    print("Unable to open sheet: " + file['id'])
    return

实际结果将格式化此文件夹内的所有Google工作表,并以文本格式设置为所有单元格的溢出

2 个答案:

答案 0 :(得分:1)

  • 您要在电子表格上设置表格的换行策略。
  • 您要将表格所有单元格的环绕策略设置为“溢出”。
  • 您想使用gspread来实现。

从您的问题和标签中,我像上面一样理解。如果我的理解是正确的,那么该示例脚本如何?

在此示例脚本中,假定将“溢出”的包装策略设置为“ Sheet1”的所有单元格。在gspread上使用batch_update()时,要求创建请求正文。

示例脚本:

spreadsheetId = "###"  # Please set this
sheetName = "Sheet1"  # Please set this

client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
sheetId = ss.worksheet(sheetName)._properties['sheetId']
body = {
  "requests": [
    {
      "updateCells": {
        "range": {
          "sheetId": sheetId,
          "startRowIndex": 0,
          "startColumnIndex": 0
        },
        "rows": [
          {
            "values": [
              {
                "userEnteredFormat": {
                  "wrapStrategy": "OVERFLOW_CELL"
                }
              }
            ]
          }
        ],
        "fields": "userEnteredFormat.wrapStrategy"
      }
    }
  ]
}
res = spreadsheet.batch_update(body)

注意:

  • 此示例脚本假设您已经能够使用Sheets API读写电子表格。
  • 很遗憾,我无法理解您的脚本。对于这种情况,我感到抱歉。

参考文献:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。

答案 1 :(得分:0)

为什么不使用 gspread 格式,它是一个简单的命令:

from gspread_formatting import *

worksheet.format("A1:D10", {"wrapStrategy": "OVERFLOW_CELL"})

就我而言,我正在寻找如何将其设置为 WRAP,因为默认情况下它是溢出的...