1

我正在使用Google Sheets API来检索电子表格并对其进行解析。我正在使用 javascript 并且请求 JSON(REST API 的文档实际上在旧的Google Data API文档中 - 非常烦人!)。

这是我用于GET数据的 URL,ID电子表格的 ID 在哪里:

https://spreadsheets.google.com/feeds/cells/"+ID+"/1/public/values?alt=json

这将获取第一个工作表的每个单元格,但是,所有单元格都列在一个数组中。

feed: {
    entry: [
        0: {
            gs$cell: {
                row: 1,
                col: 1,
                $t: 'Value'
            }
        },
        1: {
            gs$cell: {
                row: 2,
                col: 1,
                $t: 'Other Value'
            }
        }
    ]
}

这意味着我必须使用 for 循环遍历数组 ( data.feed.entry),检查它使用的是哪一行data.feed.entry[i].gs$cell.row,然后将每个单元格排序为每行的数组。这似乎需要大量额外的工作来格式化 JSON 对象以供使用。

我只是想知道为什么 Google 会像这样构建他们的 JSON 对象。他们为什么不按行对单元格进行分组呢?我觉得我错过了什么。

list然后我认为使用而不是 获取整行可能会更好cells,但是当我这样做时,列是由它们的值定义的,这意味着内容不能是动态的。在解析数据之前,您必须知道标头值...

feed: {
    entry: [
        0: {
            gsx$MyColumnValue: {
                row: 1,
                col: 1,
                $t: 'Value'
            }
        },
        1: {
            gsx$MyOtherColumnValue: {
                row: 2,
                col: 1,
                $t: 'Other Value'
            }
        }
    ]
}

同样,我不知道为什么 Google 会以这种方式构建他们的 JSON。你知道为什么吗?我错过了什么?

4

1 回答 1

0

FWIW(以及后代),您可以更改cellslist以获得基于行的响应。

例如https://spreadsheets.google.com/feeds/list/SPREADSHEET-ID/1/public/values?alt=json

于 2020-12-14T16:51:21.227 回答