我正在尝试使用google api php客户端在电子表格中附加一些值。
我已经成功地在工作表中添加了数据,但是每次运行代码时,它都会开始从前一行在下一行结束的列中附加值。
我每次都尝试在新行中附加值,但必须从A列开始。
这是我的代码。
$client = getClient();
$service = new Google_Service_Sheets( $client );
$spreadsheetId = 'my-spreadsheet-id';
$range = 'sheet1';
$values = array(
array( "Item", "Cost", "Stocked", '', '', "Ship Date" )
);
$body = new Google_Service_Sheets_ValueRange( array( 'values' =>
$values, 'majorDimension' => 'ROWS', 'range' => 'sheet1' ) );
$params = array( 'valueInputOption' => 'USER_ENTERED',
'insertDataOption' => 'INSERT_ROWS' );
$service->spreadsheets_values->append( $spreadsheetId, $range,
$body, $params );
现在,当我运行此代码时,它将“ Item”添加到新行的A列中,并将“ Ship Date”添加到F列中。 这是正确的。
但是当我再次运行相同的代码时,它将数据追加到新行中,但以F列开始,以K列结束。
我希望下次数据也应从A列开始追加,并在F列结束。
请帮助我实现这一目标,我已阅读其文档,但无法使其正常运行,试图在各种网站上的Internet上找到答案,但未能使其正常运行。 谁能帮我这个忙。
答案 0 :(得分:1)
深入研究代码后,我找到了解决方法。
如果有人在寻找相同的东西,那么对我来说解决方案是我需要更改范围。 首先获取所有值并找到工作表中存在的行数,然后可以在工作表中附加空白值,从新的行和列A开始
这是我更新的范围代码:
$range = 'sheet1!A1:Z';
$response = $service->spreadsheets_values->get( $spreadsheetId, $range );
$get_values = $response->getValues();
$row = count( $get_values ) + 1;// Plus 1 for new row.
$range = 'sheet1!A' . $row . ':Z' . $row;
在正常工作的代码中使用此范围。
答案 1 :(得分:0)
手动设置工作表的标题行,并且始终仅使用标题行的范围
$range = 'sheet1!A1:Z1';