工作表名称中的转义加号+

问题描述

我们有一个Google电子表格,其工作表名为foo + bar (yay)。当我尝试使用Java API从工作表中选择数据时,我从Google处收到一条错误消息:

{
  "code" : 400,"errors" : [ {
    "domain" : "global","message" : "Unable to parse range: foo   bar (yay)!A2:Z","reason" : "badRequest"
  } ],"status" : "INVALID_ARGUMENT"
}

代码看起来像这样(省略了一些身份验证细节,并从Scala进行了翻译)

Sheets s = ... // constructed using HTTP transport & credentials
String range = "'foo + bar (yay)'!A2:Z";
String spreadsheetId = ... // fill in your own
ValueRange values = s.spreadsheets().values().get(spreadsheetId,range).execute();

它基于以下代码示例:https://developers.google.com/sheets/api/quickstart/java#step_3_set_up_the_sample

请注意,+已由单个空格 代替,就好像它已被URL编码一样。我尝试将+替换为%2B,但仍然出现错误,并且重复向我重复%2B,好像我的意思是“%2B”一样-所以我认为这不是问题URL编码。

我尝试列出此电子表格的工作表名称,而我在工作表名称中找回了+符号,所以我认为这不是问题。然后,我尝试重命名工作表以使用单词“和”而不是+,并且我的代码能够成功选择范围-因此,我可以肯定+是问题所在。我在文档中看不到任何转义特殊字符的描述。

我在文档https://developers.google.com/sheets/api/guides/concepts#a1_notation中注意到了这一点,并尝试用单引号("'foo + bar (yay)'")将工作表名称括起来,但无济于事。

是否可以在不重命名工作表的情况下选择此范围?

解决方法

我遇到了同样的错误-也使用Java库,并尝试引用名为“ Week 1 + 2”的工作表。.我尝试了“'Week 1 + 2'!A2:Z”的想法,但是Java没有不喜欢然后,我尝试了“'Week1 \ +2'!A2:Z”并进行了编译,但出现了“无法解析范围“ Week1 \ 2”的错误。这就像(有人指出的那样)将“ +”转换为我在其他地方也看到有人在-的名字上出现问题-

**没有答案!!!试图在上面添加评论,但不会让我**

有趣的事实->我测试了python库以读取工作表,并且它很高兴地接受带有嵌入式+的工作表名称。所以这似乎是一个Java东西。...

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...