如何在php中的google sheet api v4中使用datetimerenderoption?

时间:2016-08-22 19:36:59

标签: php google-sheets google-spreadsheet-api google-sheets-api

我必须使用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用于插入日期,但我没有得到如何做。

1 个答案:

答案 0 :(得分:0)

DateTimeRenderOption用于values collection API(也仅用于阅读,而不是写入)。您正在使用spreadsheets collection API,这些API更加简单,并且不使用该便利选项。

如果您粘贴了您收到的错误,则会更容易提供帮助,但我认为它与设置numberValue的行有关。 docs say numberValue采用数字,而不是字符串。如果您想设置日期,则需要在Serial Number format中提供该日期的号码。您可以查看this SO answer以获得有关处理序列号的好建议。