Rumah > Soal Jawab > teks badan
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粉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?
$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);
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);
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)