Lua - 如何从 JSON 表格(Google Sheets API)中提取一行数据?

我开始使用 Lua 探索 Google Sheets API,虽然我可以检索一系列值,但我只能想出如何返回一列值,但我也想返回一行。

这是我用于从 Google 表格中检索单元格 A1 到 D5 的值的 Lua 代码示例。 (4列4行)

为了帮助我跟踪来自哪里的内容,我在单元格本身中添加了每个单元格的名称。

local socket = require 'socket'
local ssl = require 'ssl'
local https = require 'ssl.https'

local body, code, headers, status = https.request("https://sheets.googleapis.com/v4/spreadsheets/[mysheetID]/values/A1:D5?key=[MyAPIkey]")
print(body)
print("---------------------")

 --[[ 返回以下内容...
{
   "range":"Sheet1!A1:D5",
   "majorDimension":"ROWS",
   "values":[
      [
         "Cell A1",
         "Cell B1",
         "Cell C1",
         "Cell D1"
      ],
      [
         "Cell A2",
         "Cell B2",
         "Cell C2",
         "Cell D2"
      ],
      [
         "Cell A3",
         "Cell B3",
         "Cell C3",
         "Cell D3"
      ],
      [
         "Cell A4",
         "Cell B4",
         "Cell C4",
         "Cell D4"
      ]
   ]
}
]]--

要显示一列,我做以下工作…


local json = require "dkjson"
local j = json.decode(body)
    for k,v in pairs(j.values[1]) do
    print(k,v)
end

这将返回第一列(下面),而 j.values[2] 将给我第二列,以此类推....

1     Cell A1
2     Cell B1
3     Cell C1
4     Cell D1

我无法弄清楚如何返回一行,例如 A1、B1、C1、D1

请问是否有人能解释一下我如何从列表中检索任何行,并能够做到始终如一地这样做,不管我决定检索哪个单元格范围?

原文链接 https://stackoverflow.com/questions/69766398

点赞
stackoverflow用户10612011
stackoverflow用户10612011

虽然我不确定你具体想要什么(你提到了获取 A1B1C1D1,这对应一行),但如果你想要检索转置后按列排序的结果,可以添加查询参数 majorDimension=COLUMNS(如果未设置此参数,则默认为 ROWS,可以在 ValueRange 中看到)。

因此,你需要更改请求的 URL,从:

https://sheets.googleapis.com/v4/spreadsheets/[mysheetID]/values/A1:D5?key=[MyAPIkey]

至:

https://sheets.googleapis.com/v4/spreadsheets/[mysheetID]/values/A1:D5?majorDimension=COLUMNS&key=[MyAPIkey]

参考资料:

2021-10-29 12:14:50