Php 使用Google Sheets API写入工作表
我想将数据写入工作表:Php 使用Google Sheets API写入工作表,php,google-spreadsheet-api,Php,Google Spreadsheet Api,我想将数据写入工作表: $spreadsheetId = 'xxx'; $range = 'Test!A1:D5'; $values = [ 'range' => "A1", 'majorDimension' => 'DIMENSION_UNSPECIFIED', 'values' => [ ["Item", "Cost", "Stocked", "Ship Date"], ["Wheel", "$20.50", "4", "3/1/2016"],
$spreadsheetId = 'xxx';
$range = 'Test!A1:D5';
$values = [
'range' => "A1",
'majorDimension' => 'DIMENSION_UNSPECIFIED',
'values' => [
["Item", "Cost", "Stocked", "Ship Date"],
["Wheel", "$20.50", "4", "3/1/2016"],
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "30/20/2016"],
],
];
$body = new Google_Service_Sheets_ValueRange(array(
'values' => $values
));
$params = array(
'valueInputOption' => 'RAW'
);
$result = $service->spreadsheets_values->update($spreadsheetId, $range, $body, $params);
但在日志中我看到:
PHP Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"range\" at 'data.values': Cannot find field.\nInvalid JSON payload received. Unknown name \"major_dimension\" at 'data.values': Cannot find field.",
"errors": [
{
"message": "Invalid JSON payload received. Unknown name \"range\" at 'data.values': Cannot find field.\nInvalid JSON payload received. Unknown name \"major_dimension\" at 'data.values': Cannot find field.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}
我做错了什么?我将非常感谢为您提供的示例代码:)
在示例中,没有足够的信息()您就快到了。不要忘记包括图纸名称
"range": "Sheet1!A1:D5"
查看更多样本。您就快到了。不要忘记包括图纸名称
"range": "Sheet1!A1:D5"
查看更多样本。尝试以下方法:
$spreadsheetId = 'xxx';
$range = 'Test!A1:D5';
$values = [
["Item", "Cost", "Stocked", "Ship Date"],
["Wheel", "$20.50", "4", "3/1/2016"],
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "30/20/2016"],
];
$updateBody = new Google_Service_Sheets_ValueRange([
'range' => $range,
'majorDimension' => 'ROWS',
'values' => $values,
]);
$valueInputOption = 'USER_ENTERED'; // Or RAW
$params = [
'valueInputOption' => $valueInputOption
];
$result = $this->sheetsService->spreadsheets_values->update(
$spreadsheetID,
$updateRange,
$updateBody,
$params
);
试试这个:
$spreadsheetId = 'xxx';
$range = 'Test!A1:D5';
$values = [
["Item", "Cost", "Stocked", "Ship Date"],
["Wheel", "$20.50", "4", "3/1/2016"],
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "30/20/2016"],
];
$updateBody = new Google_Service_Sheets_ValueRange([
'range' => $range,
'majorDimension' => 'ROWS',
'values' => $values,
]);
$valueInputOption = 'USER_ENTERED'; // Or RAW
$params = [
'valueInputOption' => $valueInputOption
];
$result = $this->sheetsService->spreadsheets_values->update(
$spreadsheetID,
$updateRange,
$updateBody,
$params
);
这里的情况并非如此,但我通过从
values
数组中的项中删除NULL
值,解决了类似的问题
谷歌的PHP库似乎很难解析这些值,最终生成了无效的JSON负载。这里不是这样,但我通过从
值
数组中的项中删除NULL
值解决了类似的问题
谷歌的PHP库似乎很难解析这些值,最终生成了无效的JSON负载。相同的结果:-(我只熟悉JS实现。但是官方的PHP实现是用于在单元格上写入的。相同的结果:-(我只熟悉JS实现。但是官方的PHP实现是用于在单元格上编写的。您解决了吗?只使用了。感谢支持!您解决了吗?只使用了。感谢支持!必须设置$updateRange=$range='Test!A1:D5'才能工作必须设置$updateRange=$range='Test!A1:D5'才能工作