Wie lese ich zweidimensionale Array-Daten mithilfe der Google Sheets-API?
P粉351138462
P粉351138462 2024-03-30 16:24:35
0
1
465

Ich bin neu bei der Google Sheets API, Derzeit entwickle ich ein System zum Senden von Daten an Google Sheets. Wenn ich versuche, Daten zu senden, wird ein Fehler angezeigt wie: Ungültiger Wert [0][0]

Unten sind meine Codezeilen.

`

$client = getClientAuth();

        $spreadsheet_ID = $this->spreadsheet->spreadsheetId; 
        
        $range = "Sheet1";

        $values = $this->sheetData;

        $this->service = new Sheets($client);


        $body = new ValueRange([
            'majorDimension' => 'ROWS',
            'values' => [array_map(function($nv) {
                return (is_null($nv)) ? "" : $nv;
              },$values)]
        ]);

        $params = ['valueInputOption' => 'RAW'];

        $insert = ['insertDataOption' => 'INSERT_ROWS'];

        //executing the request
        $data = $this->service->spreadsheets_values->append($spreadsheet_ID, $range,
        $body, $params, $insert);
    
        return $data;

`

P粉351138462
P粉351138462

Antworte allen(1)
P粉446800329

根据您的错误消息和显示脚本,我认为在您的情况下, $values 可能是一个二维数组。我认为如果 $values 是一维数组,那么您的脚本就可以工作。另外,请在 $params 中包含 'insertDataOption' => 'INSERT_ROWS'。那么,既然如此,下面的修改如何呢?

来自:

$body = new ValueRange([
    'majorDimension' => 'ROWS',
    'values' => [array_map(function($nv) {
        return (is_null($nv)) ? "" : $nv;
      },$values)]
]);

$params = ['valueInputOption' => 'RAW'];

$insert = ['insertDataOption' => 'INSERT_ROWS'];

//executing the request
$data = $this->service->spreadsheets_values->append($spreadsheet_ID, $range,
$body, $params, $insert);

致:

$body = new ValueRange([
    'majorDimension' => 'ROWS',
    'values' => array_map(function($row) {
      return array_map(function($col) {
        return (is_null($col)) ? "" : $col;
      }, $row);
    }, $values)
]);
$params = ['valueInputOption' => 'RAW', 'insertDataOption' => 'INSERT_ROWS'];
$data = $service->spreadsheets_values->append($spreadsheet_ID, $range, $body, $params);

$body = new Google_Service_Sheets_ValueRange([
    'majorDimension' => 'ROWS',
    'values' => array_map(function($row) {
      return array_map(function($col) {
        return (is_null($col)) ? "" : $col;
      }, $row);
    }, $values)
]);
$params = ['valueInputOption' => 'RAW', 'insertDataOption' => 'INSERT_ROWS'];
$data = $service->spreadsheets_values->append($spreadsheet_ID, $range, $body, $params);

注意:

  • 当使用箭头函数时,我认为可以使用如下修改。

    • 来自

      'values' => array_map(function($row) {
        return array_map(function($col) {
          return (is_null($col)) ? "" : $col;
        }, $row);
      }, $values)
      
    • 'values' => array_map(fn($row) => array_map(fn($col) => (is_null($col)) ? "" : $col, $row), $values)
      
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage