代码之家  ›  专栏  ›  技术社区  ›  TJ Sherrill

Google Sheets API/PHP-如何使用A1表示法从工作表中获取非连续列

  •  0
  • TJ Sherrill  · 技术社区  · 7 年前

    我已经启动并运行了Sheets api。我可以把床单拉进去。

    然而,这张纸有很多列,我只需要几列。

    我当前的工作代码:

    $range = 'LPs Input!A:O';
    $response = $service->spreadsheets_values->get($spreadsheetId, $range);
    $values = $response->getValues();
    

    我想做什么:

    $range = 'LPs Input!C:D,O:P';
    $response = $service->spreadsheets_values->get($spreadsheetId, $range);
    $values = $response->getValues();
    

    但当我运行这个时,我得到:

    {
    "error": {
    "code": 400,
    "message": "Unable to parse range: LPs Input!C:D,O:P",
    "errors": [
    {
      "message": "Unable to parse range: LPs Input!C:D,O:P",
      "domain": "global",
      "reason": "badRequest"
    }
    ],
    "status": "INVALID_ARGUMENT"
    }
    }
    

    据我所知,这是有效的A1符号。如何从该工作表中获取特定列?

    1 回复  |  直到 7 年前
        1
  •  0
  •   ScottMcC    7 年前

    Input!C:D,O:P 不是有效的A1表示法。从该语句来看,您似乎试图在一条语句中选择多个范围(C列到D列,O列到P列)。

    有几种方法可以解决此问题:

    • 选择整个范围 Input!C:P 只需从响应中选择所需的组件
    • 使用 Input!C:D Input!O:P 选择所需的特定列。在这种情况下,我还会考虑使用 spreadsheets.values.batchGet 方法(本页底部有一个PHP示例)
    • 请注意移动工作表中的O列和P列,使其位于E列和F列中。然后,您可以使用 Input!C:F

    有关图纸中A1符号的更多信息,请参阅以下链接: https://developers.google.com/sheets/api/guides/concepts#a1_notation