【发布时间】:2017-02-01 14:14:10
【问题描述】:
我正在使用 Python Google Sheets API,我想读取单个单元格的颜色。我已阅读文档,但我只能找到有关如何从单元格中检索文本的信息,而不是颜色格式。
【问题讨论】:
-
你看过 Gspread [github.com/burnash/gspread] Python 模块吗?
标签: python google-sheets google-sheets-api
我正在使用 Python Google Sheets API,我想读取单个单元格的颜色。我已阅读文档,但我只能找到有关如何从单元格中检索文本的信息,而不是颜色格式。
【问题讨论】:
标签: python google-sheets google-sheets-api
您可以使用Method: spreadsheets.get 获取特定单元格的颜色。
只需传递spreadsheetId 并确保将includeGridData 参数设置为true。
例如,这张图片指定范围 B1。
通过使用此电子表格.get,您将在此处获得"backgroundColor": {"green": 1} 的结果,不仅是背景颜色,您还将在此处获得fontFamily、fontSize,如果是bold、@ 987654330@、strikethrough 或underline。
您可以通过创建电子表格来尝试,然后按照上图进行操作。
这是我使用的请求。
GET https://sheets.googleapis.com/v4/spreadsheets/YOUR_SPREADSHEET_ID?includeGridData=true&ranges=B1&key={YOUR_API_KEY}
【讨论】:
使用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"));
}
【讨论】: