尝试使用 API v4 在 google 工作表中写入一行时出错

Error trying to write a row in google sheets using API v4

我正在尝试使用 java 和 Google Sheets API v4 向 sheet 写入一行。我收到一个我无法理解的错误。任何帮助将不胜感激!

传递的值是:

sRange = '09/03/2017 11:01:13 PM'!A1
body = {majorDimension=ROWS, values=[[Test ID, Test Name, Run ID, Status, Run Duration, Execution Date, Execution Time]]}

这里是故障码:

outputValues = Arrays.asList(Arrays.asList("Test ID", "Test Name", "Run ID", "Status", "Run Duration", "Execution Date", "Execution Time"));
sRange = "'" + sSheetName + "'" + "!" + sHeaderRow;
body = new ValueRange().setValues(outputValues).setMajorDimension("ROWS");
result = service.spreadsheets().values().update(sSpreadsheetID, sRange, body).setValueInputOption("RAW").execute();

结果:

{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Requested writing within range ['09/03/2017 11:01:13 PM'!A1], but tried writing to column [B]",
    "reason" : "badRequest"
  } ],
  "message" : "Requested writing within range ['09/03/2017 11:01:13 PM'!A1], but tried writing to column [B]",
  "status" : "INVALID_ARGUMENT"
}

我认为 sRange 应该使用 A1 notation:

看起来像:

SheetName!A1:B2
Sheet1!A1

查看 link 了解更多信息。

由于 sheet 标题中的字符问题,出现此错误。删除 sheet 标题中的空格、破折号和冒号并用下划线替换它们修复了它。

我已经研究这个问题一段时间了,在我的例子中,我试图连续更新 2 个以上的字段,并且我将范围指定为 A1:B1,这仅描述了要更新的 2 行。我将其更改为 A1 并且有效。

所以让你的范围是:

SheetName!A1

将您的 Sheet 名称更改为它的一些简单版本(没有特殊符号)。 对我的情况有帮助。