【问题标题】:How to use datetimerenderoption in google sheets api v4 in php?如何在 php 的 google sheet api v4 中使用 datetimerenderoption?
【发布时间】:2016-08-22 19:36:59
【问题描述】:

我必须在 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 将用于插入日期,但我不知道该怎么做。

【问题讨论】:

  • 我已经重新格式化了您的代码,但了解您遇到的什么错误以及您使用 datetimerenderoption 尝试了什么会很有用。
  • 我只想感谢您提供了一个不错的示例,说明如何在 Google 表格中创建/处理请求!我发现 API 文档不是特别有用。

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


【解决方案1】:

DateTimeRenderOption 用于values collection API(也仅用于读取,而非写入)。您正在使用 spreadsheets collection API,这些 API 更简单,不使用方便选项。

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

【讨论】:

  • 出现错误 - 'requests[0].update_cells.rows[0].values[2].user_entered_value.number_value' (TYPE_DOUBLE), "2016-05-05" 处的值无效跨度>
  • 是的,这就是我认为的问题所在的错误。您正在将字符串传递给需要数字的东西。请参阅我上面的答案。
  • 我不知道如何在 PHP 中设置序列号格式。请帮忙
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
相关资源
最近更新 更多