首页 > 解决方案 > 每次都无法追加以 A 列开头的行

问题描述

我正在尝试使用 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 );

现在,当我运行此代码时,它会在新行的 A 列上附加“项目”,在 F 列上附加“发货日期”。这是正确的。

但是当我再次运行相同的代码时,它会将数据附加到新行中,但从 F 列开始,以 K 列结束。

我希望下一次数据也应该从 A 列开始附加并在 F 列结束。

请帮助我实现这一点,我已经阅读了它的文档但无法使其工作,试图在各种网站上的互联网上找到答案但无法使其工作。谁能帮我解决这个问题。

标签: google-sheetsgoogle-sheets-apigoogle-api-php-client

解决方案


在深入研究代码后,我找到了解决方案。

如果有人在寻找相同的东西,那么我的解决方案是我需要更改范围。首先获取所有值并找到工作表中存在的行数,然后您可以在工作表中附加空白值,从新行和列 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;

在代码中使用这个范围可以正常工作。


推荐阅读