известно, что для получения значений из строк-столбцов в API листов Google формат примерно такой:
gapi.client.sheets.spreadsheets.values.get({
spreadsheetId: id,
range: "myData!A1:E"
}).then(res => {
console.info(res.result);
}, err => console.info(err));
Обратите внимание, что «диапазон» должен находиться в пределах определенных параметров, но как мне просто получить значения в максимальном диапазоне? Есть ли какое-то сокращение, например «myData! Min: Max»? Я знаю, что вы можете сделать еще один запрос, чтобы получить максимальную длину строки и столбца:
sheets.spreadsheets.get({
spreadsheetId: id,
ranges: [],
auth: something
}, (err, resp) => {
var sheetOne = resp.data.sheets[0];
console.info(sheetOne.properties.gridProperties); // { rowCount: 1024, columnCount: 7 } (for example)
})
а затем, как только я это получу, я теоретически могу автоматически сгенерировать строку диапазона с системой переключения между буквами, чтобы получить имена букв столбцов или что-то в этом роде, и сделать еще один запрос, чтобы получить максимальное количество столбцов, но прежде всего:
Любой способ сделать это с помощью API???
Вы пробовали просто использовать нотацию R1C1? Также обратите внимание, что конечные пустые строки/столбцы не возвращаются согласно документации.
Странно, что на это до сих пор нет ответа. У меня точно такой же вопрос. @tehhowch, что такое нотация R1C1? Вопрос в том, как разработчик может получить количество строк и столбцов в первую очередь, чтобы сделать эту нотацию возможной.
@aristav Погуглите, это один из двух распространенных стилей адресации электронных таблиц. ОП уже показал, как можно получить количество строк и столбцов.
@tehhowch Спасибо за совет по гуглению, я об этом не знал :D Я думаю, что под R1C1 вы подразумеваете «обозначение A1»?
@ariestav Нет, «нотация A1» и «нотация R1C1» - это разные стили адресации электронных таблиц. Ячейка, обозначенная «F1», и ячейка, обозначенная «R1C6», являются одной и той же ячейкой.
@tehhowch спасибо за разъяснение! очень признателен





Чтобы вернуть все ячейки листа с именем myData, вы можете использовать myData вместо myData!A1:E:
gapi.client.sheets.spreadsheets.values.get({
spreadsheetId: id,
range: "myData"
}).then(res => {
console.info(res.result);
}, err => console.info(err));
Что касается вашего второго вопроса, насколько я знаю, нет способа получить только диапазон, в котором есть непустые значения, используя нотацию A1.
Однако вы можете перебирать значения после того, как API вернет их, чтобы определить, какие из них имеют значения.
Из https://developers.google.com/sheets/api/guides/concepts
Обозначение А1:
Для некоторых методов API требуется диапазон в нотации A1. Это строка типа Sheet1!A1:B2, которая относится к группе ячеек в электронной таблице и обычно используется в формулах. Например, допустимые диапазоны:
отличное объяснение! Как выбрать 2-й лист в документе?
Если вы знаете, что лист, который вам нужен, является вторым листом в электронной таблице, и вы не знаете имя этого листа, я думаю, вы можете получить массив имен листов в электронной таблице, передав идентификатор электронной таблицы, как описано здесь: Developers.google.com/sheets/api/reference/rest/v4/spreadsheets Затем вы можете выбрать второй элемент этого массива, чтобы получить имя листа, а затем, используя это имя листа, использовать метод, описанный выше, чтобы получить диапазон.
columnToLetterиletterToColumnбыл представлен AdamL.