google-sheets - 每次都无法追加以 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 列结束。
请帮助我实现这一点,我已经阅读了它的文档但无法使其工作,试图在各种网站上的互联网上找到答案但无法使其工作。谁能帮我解决这个问题。
解决方案
在深入研究代码后,我找到了解决方案。
如果有人在寻找相同的东西,那么我的解决方案是我需要更改范围。首先获取所有值并找到工作表中存在的行数,然后您可以在工作表中附加空白值,从新行和列 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;
在代码中使用这个范围可以正常工作。
推荐阅读
- list - 如何制作尾递归函数
- scala - Spark SQL:是否可以为给定的数据框分区以预定义的顺序逐行处理?
- python - for i in range(0, size): C[A[i]] += 1 在 Python 中是什么意思?
- python - 将 Python 算法的多个 git 项目分支合并为一个
- c++ - 如何迭代指针指向的对象列表?
- c# - 如何使多个 SOAP Web 服务调用通用以减少冗余?
- sql - 需要多条记录的最新行中的值
- java - Ajaxswing(将 Java 桌面应用程序转换为 Web 应用程序)- ClassNotFoundException: org.apache.logging.log4j.LogManager
- c# - 多线程导致竞争条件
- reactjs - 如何传递.d.ts对返回扩展React.Component(vscode)的类的函数的注释