我正试图按照google官方文档,在Python3中读取和写入不同表单的值。尽管我能够使用rangeName=”类数据中的range属性从某些工作表中读取值!A2:E'
在下面提到的代码块中:
discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?'
'version=v4')
service = discovery.build('sheets', 'v4', http=http,
discoveryServiceUrl=discoveryUrl)
spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'
rangeName = 'Class Data!A2:E'
result = service.spreadsheets().values().get(
spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values', [])
我试图从这里使用示例代码编写值:
requests.append({
'updateCells': {
'start': {'sheetId': 0, 'rowIndex': 0, 'columnIndex': 0},
'rows': [
{
'values': [
{
'userEnteredValue': {'numberValue': 1},
'userEnteredFormat': {'backgroundColor': {'red': 1}}
}, {
'userEnteredValue': {'numberValue': 2},
'userEnteredFormat': {'backgroundColor': {'blue': 1}}
}, {
'userEnteredValue': {'numberValue': 3},
'userEnteredFormat': {'backgroundColor': {'green': 1}}
}
]
}
],
'fields': 'userEnteredValue,userEnteredFormat.backgroundColor'
}
})
batchUpdateRequest = {'requests': requests}
service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id,
body=batchUpdateRequest).execute()
我面临的问题是,我无法从官方文档中保留最新的表名或id,因为最新的api修订版正在随机生成gid(我们可能不知道表gid是什么)。是否有任何方法可以使用google sheet api v4引用工作表列表或电子表格最新修订的工作表名称或id?
对于那些寻找nodejs解决方案的人:
const { google } = require("googleapis")
// Assuming auth has already been generated
const getSheets = async (auth, spreadsheetId) => {
const sheets = google.sheets({version: "v4", auth});
const result = (await sheets.spreadsheets.get({
spreadsheetId
})).data.sheets.map((sheet) => {
return sheet.properties.title
})
return result
}
这是从等待工作表返回的内容。电子表格。获取({spreadsheetId})
然后,使用这种类型,我映射了data.sheets
的结果,并返回所有标题。
它看起来像是按照标题在实际谷歌页面上的顺序返回标题。
如果您试图生成身份验证令牌,请查看此处
还没有人在PHP库的SO上问过这个问题,但是我只是想在这里添加这个答案,因为这是相关问题的第一个谷歌结果。
<?php
$sheets = array();
// ... load library and set up client ...
$service = new Google_Service_Sheets($client);
$response = $service->spreadsheets->get($spreadsheetId);
foreach($response->getSheets() as $s) {
$sheets[] = $s['properties']['title'];
}
return $sheets;
?>
您可以使用电子表格上的“获取”方法获取表格列表:
sheet_metadata = service.spreadsheets().get(spreadsheetId=spreadsheet_id).execute()
sheets = sheet_metadata.get('sheets', '')
title = sheets[0].get("properties", {}).get("title", "Sheet1")
sheet_id = sheets[0].get("properties", {}).get("sheetId", 0)
我的脚本在提交一些表单后在电子表格上添加新的表单。此表用作排行榜。但要查看它,我必须单击新创建的选项卡。有什么办法可以从脚本中完成吗? 这张图片是创建新工作表后的屏幕截图(第1周第2课)。 P、 我发现我必须重新表述这个问题。问题是,我想从另一个电子表格(此电子表格有onSubmit触发器,并在其他打开的电子表格(排行榜)上创建和放置信息)中执行此操作。我检查setActiveSheet(工作表)
我正在准备一份投资跟踪表。对于overview页面,我想查询并合并来自每个account选项卡的数据,但我很难弄清楚如何才能做到这一点。 以下是我的测试表链接:https://docs.google.com/spreadsheets/d/14sZmxkM65ax9BKrkjinwOrOQPrS_xhqPPLs68Rggii4/edit 我尝试使用的公式位于Overview选项卡的J列中。此公式适用
可编辑链接-https://docs.google.com/spreadsheets/d/1vrzchTHVwwzc9wgFGmtc_zBsh27CEtE7KOyeNDuLwC0/edit?usp=sharing 发布至网页-https://docs.google.com/spreadsheets/d/e/2PACX-1vRaJd3YpKnemAneU47RI58m7cxQsYFdViFBxJPV
我有一个用于Google Sheets的“onEdit”脚本,但只希望它在一张工作表上工作: 如何更改脚本,使其仅在工作表中的一张工作表上工作?
我有一个谷歌电子表格,里面有多张表格,我想把每一张表格复制到一个新的电子表格中,并在一个特定的单元格中以文本命名新的电子表格。我很高兴运行脚本多次,所以我想让它复制活动表。 即。我所拥有的=称为“颜色”的电子表格——工作表1=“红色”,工作表2=“蓝色”,工作表3=“黄色”,等等。 我想要什么= 名为“红色”的电子表格。电子表格叫做"蓝色",电子表格叫做"黄色" 到目前为止,我有这个脚本,但它告诉
我有一个谷歌电子表格,其中有3张表格,包含来自不同国家的数据(,,),还有第4张表格()。所有图纸中的列都相同。 我已经知道我可以这样组合它们: 然而,我需要一种方法将任意数量的纸张组合在一起,而不需要修改公式。所以,如果添加了Country4,也应该追加。我怎么能那样做? 如果有帮助,我有一个工作表,其中有一列包含所有国家的名称(因此也包括国家工作表名称)。我有一个脚本,如果在工作表中添加了一个