Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk membaca data tatasusunan dua dimensi menggunakan API Helaian Google?

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粉351138462P粉351138462226 hari yang lalu415

membalas semua(1)saya akan balas

  • P粉446800329

    P粉4468003292024-03-31 10:29:39

    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)
        

    balas
    0
  • Batalbalas