![](/img/trans.png)
[英]Sheets API v4 - Creating a sheet with custom title, given a spreadsheet
[英]Can I access a Spreadsheet by Title in Google Sheets api v4 using the PHP client (or at all!)?
我們過去經常通過php訪問Google電子表格:-
$spreadsheetService = new SpreadsheetService();
$spreadsheetFeed = $spreadsheetService->getSpreadsheets();
$spreadsheet = $spreadsheetFeed->getByTitle($spreadsheetTitle);
但是我看不到通過v4 api進行此操作的任何示例。 此getByTitle功能是否已刪除?
在我看來,就像它一樣。 但是我認為,作為一種變通辦法,可能有一些方法來獲取經過身份驗證的Google_Client的可用電子表格的列表,該列表將列出電子表格ID和標題-這將允許我通過抓取ID以編程方式將現有代碼更新為新的api以這種方式-但我也找不到類似的東西。
有沒有人遇到此問題並找到解決方案?
對於任何其他遇到此問題的人 (有可能在遷移到v4時), 這是一個可行的解決方案 :-
....
$this->spreadsheetService = new Google_Service_Sheets($client);
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
$googleDrive = new Google_Service_Drive($client);
$spreadsheetId = "";
$parameters = [];
//$parameters['q'] = urlencode("mimeType = 'application/vnd.google-apps.spreadsheet'");
$googleDriveFiles = $googleDrive->files->listFiles($parameters);
$files = $googleDriveFiles['files'];
foreach($files as $file){
if ($file['name'] === $spreadsheetTitle){
$spreadsheetId = $file['id'];
break;
}
}
$range = $worksheetTitle;
$worksheet = $this->spreadsheetService->spreadsheets_values->get($spreadsheetId, $range);
...
您會注意到注釋掉的mimeType參數設置。 不幸的是,盡管我可以在Google控制台的“ q”參數中添加mimeType,但是我無法通過php包裝程序使它起作用。 如果有人找到了解決方法,請告訴我,我將更新此解決方案...
您可以將Drive.Files.list與查詢參數一起使用,然后使用Spreadsheets.get上返回的ID 來“打開”電子表格 。
要了解有關q
參數的更多信息,請閱讀本文檔 。
例如,要按MimeType和標題進行過濾,您可以執行name = 'yourname' and mimeType = 'application/vnd.google-apps.spreadsheet'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.