【问题标题】:Change Google Spreadsheets cell horizontal alignment using python使用 python 更改 Google 电子表格单元格水平对齐方式
【发布时间】:2021-10-22 12:52:00
【问题描述】:

我一直在尝试在 python 中配置谷歌电子表格的单元格水平对齐格式。我已经阅读了原始的谷歌开发者信息,并且还检查了面临相同问题的人的其他示例,但没有一个适用于我的示例。以下代码是我用来配置电子表格请求正文的代码。我想要做的是创建一个新的电子表格,其中所有单元格的水平对齐都居中。因此,当用户在任何单元格中键入任何内容时,它将自动居中。有什么建议吗?

spreadsheet_body = {
    'properties': {
        # spreadsheet name
        'title': sheet_name,
        "defaultFormat":{
            "horizontalAlignment":'CENTER'
        }
    },
    'sheets': [{
        'properties': {
            # worksheet name
            'title': 'Φύλλο1',
            'gridProperties': {
                # row\column number
                'rowCount': 100,
                'columnCount': 20
            },
        },
        'data': [{'rowData': [{'values': header_row}]}] # Added
    }
    ]
}


request = service.spreadsheets().create(body=spreadsheet_body)
response = request.execute()

【问题讨论】:

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


    【解决方案1】:

    我相信你的目标如下。

    • 当使用 Sheets API 的电子表格.create 方法创建新的电子表格时,您需要设置单元格的水平对齐方式。
    • 您希望使用 googleapis 和 python 来实现此目的。

    问题和解决方法:

    很遗憾,电子表格属性的"defaultFormat":{"horizontalAlignment":'CENTER'} 无法使用。这是当前的规范。这已经在ziganotschka's answer提到过。

    当我看到您的脚本时,创建的新电子表格只有一张。在这种情况下,当创建此工作表时,可以将工作表中所有单元格的水平对齐方式设置为CENTER。但在这种情况下,当创建新工作表时,将使用默认格式。请注意这一点。所以这个答案是一种解决方法。

    当这个变通办法反映在您的脚本中时,它变成如下。

    修改脚本:

    rowCount = 100
    columnCount = 20
    
    rowData = []
    for r in range(1, rowCount):
        temp = []
        for c in range(0, columnCount):
            temp.append({'userEnteredFormat': {'horizontalAlignment': 'CENTER'}})
        rowData.append({'values': temp})
    hlen = len(header_row)
    if hlen < columnCount:
        for c in range(0, columnCount - hlen):
            header_row.append({'userEnteredFormat': {'horizontalAlignment': 'CENTER'}})
    rowData.insert(0, {'values': header_row})
    
    spreadsheet_body = {
        'properties': {
            # spreadsheet name
            'title': sheet_name
        },
        'sheets': [{
            'properties': {
                # worksheet name
                'title': 'Φύλλο1',
                'gridProperties': {
                    # row\column number
                    'rowCount': rowCount,
                    'columnCount': columnCount
                },
            },
            'data': [{'rowData': rowData}]
        }]}
    
    request = service.spreadsheets().create(body=spreadsheet_body)
    response = request.execute()
    

    参考:

    【讨论】:

    • 你好!它非常适合我的情况,谢谢您的帮助!
    【解决方案2】:

    在资源SpreadsheetProperties下指定:

    默认格式

    此字段是只读的。

    很遗憾,无法使用 Sheets API 创建所有单元格自动居中的电子表格 - 就像无法通过 UI 一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-03
      • 2020-10-13
      • 2011-04-28
      • 1970-01-01
      • 2015-11-23
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多