#google-sheets #lua
Вопрос:
Я начал изучать API Google таблиц с помощью Lua, и, хотя я могу извлекать диапазон значений, я могу только придумать, как возвращать значения в столбцах, но я также хотел бы вернуть строку.
Вот пример кода Lua, который я использовал для извлечения значений из ячеек с A1 по D5 в таблице Google. (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("---------------------")
--[[ Which returns the following…
{
"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
Который возвращает 1-й столбец (ниже), а j.значения[2] дадут мне второй и так далее..
1 Cell A1
2 Cell B1
3 Cell C1
4 Cell D1
Чего я не могу понять, так это как я могу вернуть строку, т. Е. A1, B1, C1, D1
Пожалуйста, не мог бы кто-нибудь объяснить, как я могу извлечь любую строку из списка и иметь возможность делать это последовательно, независимо от диапазона ячеек, который я решу извлечь ?
Ответ №1:
В то время как я вы не уверены, что именно вы ищете (вы упоминаете, что вы получаете A1
, B1
, C1
, D1
, что соответствует подряд), если вы хотите получить транспонировать результаты, отсортированы по столбцам вместо строк, вы можете добавить параметр запроса 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=COLUMNSamp;key=[MyAPIkey]
Ссылка:
Комментарии:
1. Большое спасибо @lamblichus, я действительно перепутал, я имел в виду строки вместо столбцов (doh!). — большое спасибо за URL-адрес листов, который помог