如何阅读Google表格中单元格的颜色

时间:2017-02-01 14:14:11

标签: python google-sheets google-sheets-api

我正在使用Python Google表格API,我想阅读单个单元格的颜色。我已经阅读了文档,但我只能找到有关如何从单元格中检索文本的信息,而不是颜色格式。

2 个答案:

答案 0 :(得分:2)

您可以使用Method: spreadsheets.get获取特定单元格的颜色。

只需传递spreadsheetId,并确保设置为 true includeGridData参数。

例如,此图片指定范围B1。

enter image description here

通过使用此电子表格.get,您将获得"backgroundColor": {"green": 1}的结果,而不仅仅是背景颜色,您还会看到fontFamilyfontSize以及是否是bolditalicstrikethroughunderline

您可以通过创建电子表格来尝试,然后按照上图进行操作。

以下是我使用的请求。

GET https://sheets.googleapis.com/v4/spreadsheets/YOUR_SPREADSHEET_ID?includeGridData=true&ranges=B1&key={YOUR_API_KEY}

答案 1 :(得分:0)

使用java

 List<String> ranges = new ArrayList<>();
            ranges.add("LinksToSearch!D2:D");
            var request = sheetService.spreadsheets().get(SheetsID);
            request.setRanges(ranges);
            request.setIncludeGridData(true);
            var response = request.execute();
            System.out.println(response); //Look at the response

我没有找到任何关于如何使用给定的 google sheet API 方法解析它的资源,所以我将响应转换为 JSONObject 并自己将其解析为每行:(我只检查 1 列)

JSONArray jObj = new JSONArray(response.get("sheets").toString());
    jObj = jObj.getJSONObject(0).getJSONArray("data").getJSONObject(0).getJSONArray("rowData");
    System.out.println(jObj.toString()); //All rows as an object

    for (int i = 0; i < jObj.length(); i++) {
        System.out.println(
                jObj.getJSONObject(i).getJSONArray("values").getJSONObject(0).getJSONObject("effectiveFormat").
                        getJSONObject("backgroundColor"));
    }