1

谷歌表格 API v4:

Python 快速入门展示了如何从 Google 电子表格中获取数据:

result = service.spreadsheets().values()
         .get(spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values', [])

请参阅https://developers.google.com/sheets/quickstart/python

现在,我已经解决了 Batch Get 的语法:

我尝试了以下方法,但“值”为空:

rangeName = ["Class Data!A2:E2","Class Data!A3:E3"]
result = service.spreadsheets().values().batchGet(
         spreadsheetId=spreadsheetId, ranges=(rangeName)).execute()
for r in result['valueRanges']:
    print (r.values()[0],r.values()[1])
4

2 回答 2

0

我对python不好,但我在java客户端遇到了同样的问题,希望这个解决方案会有所帮助。我试图只加载范围

service.spreadsheets().values().batchGet
                        (spreadsheetID).execute();

正如文件所说,但没有结果。当我找到一种方法 - 制作 batchGet 时,您应该指定要从电子表格中获取的范围列表。请记下此setRange()调用:

final ArrayList<String> RANGES = new ArrayList<>();
        RANGES.add("Sheet1");
        RANGES.add("Sheet2");
BatchGetValuesResponse response = service.spreadsheets().values().batchGet
                    (spreadsheetID).setRanges(RANGES).execute();
于 2016-05-24T08:55:48.947 回答
0

如果有人在 Google 上找到这个,答案是(就像那个 Java 示例中暗示的 NoisyFlasher 一样,并且就像 OP 正朝着这个方向发展一样)只是将范围提​​供为 Python 列表。但是,结果是一个字典,而不是对象:

rangeName = ["Class Data!A2:E2","Class Data!A3:E3"]
result = service.spreadsheets().values().batchGet(
         spreadsheetId=spreadsheetId, ranges=rangeName).execute()
for r in result['valueRanges']:
    print (r['values'])
于 2016-12-06T01:39:13.763 回答