Bagaimana untuk membaca data tatasusunan dua dimensi menggunakan API Helaian Google?
P粉351138462
P粉351138462 2024-03-30 16:24:35
0
1
473

Saya baru menggunakan Google Sheets API, Pada masa ini saya sedang membangunkan sistem untuk menghantar data ke Helaian Google. Apabila saya cuba menghantar data ia menunjukkan ralat seperti: Nilai tidak sah [0][0]

Di bawah ialah baris kod saya.

`

$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

membalas semua(1)
P粉446800329

Berdasarkan mesej ralat dan skrip paparan anda, saya fikir dalam kes anda, $values 可能是一个二维数组。我认为如果 $values 是一维数组,那么您的脚本就可以工作。另外,请在 $params 中包含 'insertDataOption' => 'INSERT_ROWS'. Jadi, dalam keadaan itu, bagaimana dengan pengubahsuaian berikut?

Daripada:

$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);

Kepada:

$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);

atau

$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);

Nota:

  • Apabila menggunakan fungsi anak panah, saya rasa pengubahsuaian berikut boleh digunakan.

    • dari

      'values' => array_map(function($row) {
        return array_map(function($col) {
          return (is_null($col)) ? "" : $col;
        }, $row);
      }, $values)
      
    • Sayang

      'values' => array_map(fn($row) => array_map(fn($col) => (is_null($col)) ? "" : $col, $row), $values)
      
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan