我必须使用php中的v4 api在google sheet中写3列
$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用于插入日期,但我没有得到如何做。
答案 0 :(得分:0)
DateTimeRenderOption用于values collection API(也仅用于阅读,而不是写入)。您正在使用spreadsheets collection API,这些API更加简单,并且不使用该便利选项。
如果您粘贴了您收到的错误,则会更容易提供帮助,但我认为它与设置numberValue
的行有关。 docs say numberValue采用数字,而不是字符串。如果您想设置日期,则需要在Serial Number format中提供该日期的号码。您可以查看this SO answer以获得有关处理序列号的好建议。