Vol*_*ike 4 php google-api google-sheets-api
使用PHP,Google Sheets API v4文档中不清楚如何在现有电子表格中创建新工作表(也称为"制表符").
奇怪的是,我可以通过API资源管理器使用batchUpdate来完成它,但他们没有解释如何在PHP中执行此操作.
Vol*_*ike 14
看起来文档说我们必须使用来自$service->spreadsheets_values集合的batchUpdate .但这是不正确的.它应该是$service->spreadsheets集合.经过大量试验和错误后的正确答案是:
try {
$body = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(array(
'requests' => array(
'addSheet' => array(
'properties' => array(
'title' => 'New Sheet'
)
)
)
));
$result1 = $service->spreadsheets->batchUpdate($sSpreadsheetID,$body);
} catch(Exception $ignore) {}
Run Code Online (Sandbox Code Playgroud)
鉴于您已经对API进行了身份验证以获取$client对象,然后使用它来获取$service类的对象Google_Service_Sheets,并且已经分配$sSpreadsheetID了电子表格的ID,那么上述例程将尝试向您的名为"新工作表"的电子表格,不会销毁任何现有工作表,如果此选项卡已存在,则不会显示错误.此时,您可以使用A1表示法对新工作表执行新操作.
小智 6
看看这个
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
SERVICE_ACCOUNT_FILE = 'credentials.json'
SPREADSHEET_ID = spreadsheetId
creds = None
creds = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = discovery.build(
'sheets', 'v4', credentials=creds, cache_discovery=False)
batch_update_values_request_body = {
'requests': [
{
'addSheet': {
'properties': {
'title': worksheetName
}
}
}
]
}
request = service.spreadsheets().batchUpdate(
spreadsheetId=SPREADSHEET_ID, body=batch_update_values_request_body)
response = request.execute()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4783 次 |
| 最近记录: |