Я должен написать 3 столбца в Google листе, используя API V4 в PHP
$range = $sheetName;
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
$lastRow = count($values);
$rowIndex = $lastRow;
$columnIndex = 0;
$requests = array();
$requests[] = new Google_Service_Sheets_Request(array(
'updateCells' => array(
'start' => array(
'sheetId' => $sheetId,
'rowIndex' => $rowIndex,
'columnIndex' => $columnIndex
),
'rows' => array(
array(
'values' => array(
array(
'userEnteredValue' => array('numberValue' => '111111'),
'userEnteredFormat' => array('backgroundColor' => array('red'=>1, 'green'=>0.94, 'blue'=>0.8))
),
array(
'userEnteredValue' => array('stringValue' => 'aaaaaaaaa'),
'userEnteredFormat' => array('backgroundColor' => array('red'=>1, 'green'=>0.94, 'blue'=>0.8))
),
array(
'userEnteredValue' => array('numberValue' => '2015-05-05'),
'userEnteredFormat' => array('numberFormat' => array('type'=>'DATE', 'pattern'=>'yyyy-mm-dd'), 'backgroundColor' => array('red'=>1, 'green'=>0.94, 'blue'=>0.8))
)
)
)
),
'fields' => 'userEnteredValue,userEnteredFormat.backgroundColor'
)
));
$batchUpdateRequest = new Google_Service_Sheets_BatchUpdateSpreadsheetRequest(array(
'requests' => $requests
));
try {
$service->spreadsheets->batchUpdate($spreadsheetId, $batchUpdateRequest);
} catch(Exception $e) {
print_R($e);
}
Я использую приведенный выше код для выполнения задачи, единственная проблема, с которой я сталкиваюсь, это то, что я получаю ошибку при вставке даты.
Я читал, что datetimerenderoption будет использоваться для вставки даты, но я не понимаю, как это сделать.
DateTimeRenderOption используется в сбор значений API (а также только для чтения, а не записи). Вы используете коллекция электронных таблиц API-интерфейсы, которые более просты и не используют эту удобную опцию.
Если вы вставите полученную ошибку, вам будет легче помочь, но я предполагаю, что это как-то связано со строками, которые устанавливают numberValue
, документы говорят numberValue принимает число, а не строку. Если вы хотите установить дату, вам нужно указать номер этой даты в Формат серийного номера. Вы можете просмотреть этот так ответ за хорошие предложения по работе с серийными номерами.
Других решений пока нет …