如何解决Google Sheets API按日期排序列 示例脚本:注意:参考文献:
我想通过使用python googleapiclient.discovery将Google表格按日期列排序。我假设有给定this的方法,可以通过batchUpdate做到这一点,但我不太清楚这里的语法。
在gs中,我要执行的排序如下:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
var range = sheet.getRange(3,1,sheet.getLastRow() - 1,sheet.getLastColumn());
range.sort(1)
}
我确实看到有一种使用googleapiclient(.scripts())来调用上述gs脚本的方法,但我想避免将其转换为Cloud Project。我也知道可以在on edit触发器上设置上述脚本,但理想情况下,我不希望仅在运行另一个外部作业时才在每次更改时都不触发此脚本。
解决方法
Google Sheets API按日期排序列 Google Sheets API Sort column by date https://stackoverflow.com/users/9004050/gustavmauler
我相信您的目标和情况如下。
- 您要将问题中的Google Apps脚本转换为python脚本。
- 在python脚本中,您想将googleapis用于python。
- 您已经能够使用Sheets API获取和放置Google Spreadsheet的值。
在这种情况下,将使用Sheets API的“ spreadsheets.batchUpdate”方法。
示例脚本:
在使用此脚本之前,请设置电子表格ID和工作表ID。
spreadsheet_id = '###' # Please set the spreadsheet ID.
sheet_id = '###' # Please set the sheet ID.
service = build('sheets','v4',credentials=creds)
requests = {
"requests": [
{
"sortRange": {
"range": {
"sheetId": sheet_id,"startRowIndex": 2,"startColumnIndex": 0
},"sortSpecs": [
{
"dataSourceColumnReference": {
"name": "A"
},"sortOrder": "ASCENDING"
}
]
}
}
]
}
res = service.spreadsheets().batchUpdate(body=requests,spreadsheetId=spreadsheet_id).execute()
print(res)
- 运行上述脚本时,可以获得与Google Apps脚本相同的结果。
- 在此示例中,
range
对象表示sheet.getRange(3,1,sheet.getLastRow() - 1,sheet.getLastColumn())
。- 例如,在
getRange(3,sheet.getLastColumn())
的情况下,当数据范围为“ A1:B10”时,getRange(3,sheet.getLastColumn())
为“ A3:B11”。所以我用了上面的范围。
- 例如,在
注意:
- 关于授权脚本,请检查快速入门。 Ref-此示例脚本假设您已经能够使用Sheets API。
参考文献:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。