Python gspreadでスプレッドシート行の高さ/列幅を変える
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サマサマです)。