<p>我相信你的目标如下</p>
<ul>
<li>您希望更改Google电子表格中现有工作表的最大行数和列数</李>
<li>您希望使用gspread和python来实现这一点</李>
<li>您已经能够使用Sheets API获取和输入Google电子表格的值</李>
</ul>
<h3>实现目标的积分:</h3>
<p>在这种情况下,需要使用Sheets API中的“spreadsheets.batchUpdate”方法。我想提出以下流程</p>
<ol>
<li>插入一行</李>
<li>插入一列</李>
<li>从2到结尾删除行</李>
<li>从2到结尾删除列</李>
<li>插入行。在这种情况下,可以设置要插入的行数</李>
<li>插入列。在这种情况下,可以设置要插入的列数</李>
</ol>
<p>1和2用于避免错误。因为当对只有一行或一列的图纸运行DeleteDimensionRequest时,会发生错误</p>
<p>当使用gspread将上述流反射到脚本时,它将变成如下所示</p>
<h3>示例脚本:</h3>
<p>请设置电子表格ID和工作表名称</p>
<pre><code>spreadsheetId = "###" # Please set the Spreadsheet ID.
sheetName = "###" # Please set the sheet name.
client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
# worksheet = spreadsheet.worksheet(sheetName)
sheetId = spreadsheet.worksheet(sheetName)._properties['sheetId']
rows = len(myfilt)
columns = len(cols)
req = {
"requests": [
{
"insertDimension": {
"range": {
"sheetId": sheetId,
"startIndex": 0,
"endIndex": 1,
"dimension": "ROWS"
}
}
},
{
"insertDimension": {
"range": {
"sheetId": sheetId,
"startIndex": 0,
"endIndex": 1,
"dimension": "COLUMNS"
}
}
},
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"startIndex": 1,
"dimension": "ROWS"
}
}
},
{
"deleteDimension": {
"range": {
"sheetId": sheetId,
"startIndex": 1,
"dimension": "COLUMNS"
}
}
},
{
"insertDimension": {
"range": {
"sheetId": sheetId,
"startIndex": 0,
"endIndex": rows - 1,
"dimension": "ROWS"
}
}
},
{
"insertDimension": {
"range": {
"sheetId": sheetId,
"startIndex": 0,
"endIndex": columns - 1,
"dimension": "COLUMNS"
}
}
}
]
}
res = spreadsheet.batch_update(req)
print(res)
</code></pre>
<h3>参考文献:</h3>
<ul>
<li><a href="https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/batchUpdate" rel="nofollow noreferrer">Method: spreadsheets.batchUpdate</a></li>
<li><a href="https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#deletedimensionrequest" rel="nofollow noreferrer">DeleteDimensionRequest</a></li>
<li><a href="https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#insertdimensionrequest" rel="nofollow noreferrer">InsertDimensionRequest</a></li>
<li><a href="https://gspread.readthedocs.io/en/latest/api.html?highlight=batch_update#gspread.models.Spreadsheet.batch_update" rel="nofollow noreferrer">batch_update(body)</a></li>
</ul>