通过 API 向 Google 电子表格添加多行

Zol*_*tan 5 php google-spreadsheet-api

我可以使用以下代码向 Google 电子表格添加新行:

$valueRange = new Google_Service_Sheets_ValueRange();
$valueRange->setValues(["values" => ['data1', 'data2']]);
$range = 'Sheet1!A1:A';
$conf = ["valueInputOption" => "USER_ENTERED"];
$service->spreadsheets_values->append($spreadsheetId, $range, $valueRange, $conf);
Run Code Online (Sandbox Code Playgroud)

我应该如何更改 setValues 参数以添加多行?

谢谢你。

更新

同时我使用这种方法:

$range_number = 1; // Keep spreadsheet header
$data = array();
for($i=0;$i<count($data);$i++){
    $range_number++;
    $range = 'Sheet1!A'.$range_number.':XX';
    $values = array( array($data1[$i], $data2[$i], $data3[$i]) );
    $data[] = new Google_Service_Sheets_ValueRange(
        array( 'range' => $range, 'values' => $values )
    );
}
$body = new Google_Service_Sheets_BatchUpdateValuesRequest(array(
  'valueInputOption' => "USER_ENTERED",
  'data' => $data
));
$result = $service->spreadsheets_values->batchUpdate($spreadsheetId, $body);

// Clear rest of spreadsheet
$range_number++;
$range = 'Sheet1!A'.$range_number.':XX';
$clearRange = new Google_Service_Sheets_ClearValuesRequest();
$service->spreadsheets_values->clear($spreadsheetId, $range, $clearRange);
Run Code Online (Sandbox Code Playgroud)

但是这样我也必须发送以前的数据。我的目标只是附加新数据。

Rey*_*cia 2

尝试遵循插入空行或空列指南。将“ROWS”指定为“维度”,并使用 startIndex 和 endIndex 添加所需的行数。

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate

{
  "requests": [
    {
      "insertDimension": {
        "range": {
          "sheetId": sheetId,
          "dimension": "ROWS",
          "startIndex": 0,
          "endIndex": 100
        },
        "inheritBefore": false
      }
    },
  ],
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您检查此[附加值指南](https://developers.google.com/sheets/api/samples/writing#append_values)上的示例,它会演示使用该方法添加多行。 (2认同)