Php Google sheets API范围问题
我有一张这样的谷歌表格。这些值目前只是我的标题的占位符 当我用$range='Sheet运行我的PHP脚本时!F2:L2′;要通过API/服务帐户将记录插入google工作表,我只想开始在F行插入所有尝试,它在第一次尝试时插入很好,但随后插入到第3行及以后的所有插入都会插入从第1/A列开始的数据? 只有当我将范围设置为F3:L3并将第2行留空时,它才会同时插入到正确的列中 代码:Php Google sheets API范围问题,php,google-sheets-api,Php,Google Sheets Api,我有一张这样的谷歌表格。这些值目前只是我的标题的占位符 当我用$range='Sheet运行我的PHP脚本时!F2:L2′;要通过API/服务帐户将记录插入google工作表,我只想开始在F行插入所有尝试,它在第一次尝试时插入很好,但随后插入到第3行及以后的所有插入都会插入从第1/A列开始的数据? 只有当我将范围设置为F3:L3并将第2行留空时,它才会同时插入到正确的列中 代码: require'/var/www/html/app/vendor/autoload.php'; $client
require'/var/www/html/app/vendor/autoload.php';
$client=new\Google_client();
$client->setApplicationName(“我的PHP应用程序”);
$client->setScopes([\Google\u Service\u Sheets::SPREADSHEETS]);
$client->setAccessType('offline');
$client->setAuthConfig('/var/www/html/clients-api/credentials.json');
$sheets=new\Google\u Service\u sheets($client);
$spreadsheetId='1bo123c1UtdWKV25_312znDO123dDp631238D5qN1123lQ';
$range='Sheet1!F2:L2′;
$values=[
[$data->FirstName,$data->LastName,$data->ID,“,”,$data->PrimaryNumber,$data->PrimaryEmail]
];
$body=新Google\u服务\u表单\u值范围([
“范围”=>$range,
“值”=>$values
]);
$params=[
'insertDataOption'=>'INSERT_ROWS',
“valueInputOption”=>“原始”
];
$result=$sheets->spreadsheets\u values->append($spreadsheetId,$range,$body,$params);
回显“”,变量导出($result,true),“”,“\n”;
问题:
如你所见:
输入范围用于搜索现有数据并在该范围内查找“表”
数据将相应地附加在此“表”之后,从其第一列开始
在这种情况下,第一次追加数据时,F2:L2
不属于任何现有表,因为所有这些单元格都是空的
在连续的时间里,情况并非如此,因为没有空白单元格将已填充的F2:L2
与A1:L1
分隔开,因此将其视为包含第一行标题的表的一部分。然后,当尝试向F3:L3
添加数据时,找到的表对应于A1:L2
。因此,它将从A列开始追加数据,因为表从A列开始
您可以通过检查中的tableRange
来检查这种情况。在您的情况下,当尝试附加F3:L3
时,它将类似于“tableRange”:“Sheet1!A1:L2”
解决:
- 一个选项是,在追加
时,使输入范围从一开始就引用第1行(例如F2:L2
),并在数组的开头添加空值A1
:值
- 另一种选择是每次更新输入范围,以指定不属于“表”的范围(即依次
,F2:L2
,F3:L3
,等等)F4:L4
require '/var/www/html/app/vendor/autoload.php';
$client = new \Google_Client();
$client->setApplicationName('My PHP App');
$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
$client->setAccessType('offline');
$client->setAuthConfig('/var/www/html/clients-api/credentials.json');
$sheets = new \Google_Service_Sheets($client);
$spreadsheetId = '1bo123c1UtdWKV25_312znDO123dDp631238D5qN1123lQ';
$range = 'Sheet1!F2:L2';
$values = [
[$data->FirstName,$data->LastName,$data->ID,"","",$data->PrimaryNumber,$data->PrimaryEmail]
];
$body = new Google_Service_Sheets_ValueRange([
'range' => $range,
'values' => $values
]);
$params = [
'insertDataOption' => 'INSERT_ROWS',
'valueInputOption' => "RAW"
];
$result = $sheets->spreadsheets_values->append($spreadsheetId, $range, $body, $params);
echo '<pre>', var_export($result, true), '</pre>', "\n";
$range = 'Sheet1!A1';
$values = [
["","","","","",$data->FirstName,$data->LastName,$data->ID,"","",$data->PrimaryNumber,$data->PrimaryEmail]
];