Python gspreadでスプレッドシート行の高さ/列幅を変える

- Python -
2023.11.26
Python[パイソン]

Python gspreadでスプレッドシートの行の高さを変える方法について。

例として、

  • 全ての行の高さを22に変更したい

場合は以下のように実行します。

Python# - gspreadお作法は省略 -
sheet = spreadsheet.worksheet('シート名')
request = {
    'requests': [
        {
            'updateDimensionProperties': {
                'range': {
                    'sheetId': sheet.id,
                    'dimension': 'ROWS',
                    'startIndex': 1,
                    'endIndex': sheet.row_count,
                },
                'properties': {
                    'pixelSize': 22,
                },
                'fields': 'pixelSize',
            },
        },
    ]
}
sheet.spreadsheet.batch_update(request)

やりたいことによって、以下を適宜変更してください。

dimension → 行高さではなく列幅を変えるなら'COLUMNS'

startIndex → 変更する開始行を指定

endIndex → 変更する終了行を指定

pixelSize → 高さ/幅を指定

TypeError: string indices must be integers が出る場合

以下のようなエラーが出る場合。

File "/Users/yuki/Desktop/program/test.py", line 64, in test_func
target_sheet.batch_update(request)
File "/usr/local/lib/python3.9/site-packages/gspread/utils.py", line 701, in wrapper
return f(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/gspread/worksheet.py", line 1150, in batch_update
data = [
File "/usr/local/lib/python3.9/site-packages/gspread/worksheet.py", line 1151, in <listcomp>
dict(vr, range=absolute_range_name(self.title, vr["range"])) for vr in data
TypeError: string indices must be integers

sheet.batch_update(request)としてしまっていないか要確認。

sheet.spreadsheet.batch_update(request)とすることでエラー回避できました(ChatGPTサマサマです)。

↑TOP