Google Sheets API Автоматически получить максимальный диапазон листа

известно, что для получения значений из строк-столбцов в API листов Google формат выглядит примерно так:

gapi.client.sheets.spreadsheets.values.get({
  spreadsheetId: id,
  range: "myData!A1:E" 
}).then(res => {
  console.log(res.result);
}, err => console.log(err));

Обратите внимание, что «диапазон» должен находиться в пределах определенных параметров, но как мне просто получить значения в максимальном диапазоне? Есть ли какое-нибудь сокращение вроде «myData! Min: Max»? Я знаю, что вы можете сделать еще один запрос, чтобы получить максимальную длину строки и столбца:

sheets.spreadsheets.get({
    spreadsheetId: id,
    ranges: [],
    auth: something
}, (err, resp) => {
    var sheetOne = resp.data.sheets[0];
    console.log(sheetOne.properties.gridProperties); // { rowCount: 1024, columnCount: 7 } (for example)
})

а затем, как только я это получу, я теоретически могу автоматически сгенерировать строку диапазона с системой переключения между буквами, чтобы получить имена букв столбцов или что-то в этом роде, и сделать еще один запрос для получения максимальных столбцов, но прежде всего:

  1. Может быть сложно создать функцию, которая возвращает диапазон буквенного формата только из числа максимумов.
  2. даже в этом случае я хотел бы получить только диапазон, в котором есть непустые значения; если у меня есть таблица на 1000 строк, но используются только первые 20 строк и столбцов, то я хочу автоматически ограничить диапазон фактическими значениями.

Любой способ сделать это с помощью API ???


person Yaakov5777    schedule 17.03.2019    source источник
comment
функция, которая возвращает диапазон буквенного формата, состоящий только из максимального числа. Есть много способов сделать это (подробности - в Google stackoverflow), но отличное решение под названием columnToLetter и letterToColumn было представлено AdamL.   -  person Tedinoz    schedule 17.03.2019
comment
Вы пробовали просто использовать нотацию R1C1? Также обратите внимание, что завершающие пустые строки / столбцы не возвращаются согласно документации.   -  person tehhowch    schedule 18.03.2019
comment
Странно, что ответа на этот вопрос пока нет. У меня точно такой же вопрос. @tehhowch что такое нотация R1C1? Вопрос в том, как разработчик может получить количество строк и столбцов в первую очередь, чтобы сделать эту нотацию возможной.   -  person ariestav    schedule 24.01.2020
comment
@ariestav Google, это один из двух распространенных стилей адресации электронных таблиц. OP уже показал, как можно получить количество строк и столбцов.   -  person tehhowch    schedule 24.01.2020
comment
@tehhowch Спасибо за подсказку по поиску в Google, я не думал об этом: D Я думаю, что под R1C1 вы имеете в виду нотацию A1?   -  person ariestav    schedule 24.01.2020
comment
@ariestav Нет, нотация A1 и нотация R1C1 - это разные стили адресации электронных таблиц. Ячейка, обозначенная F1, и ячейка, указанная R1C6, являются одной и той же ячейкой.   -  person tehhowch    schedule 25.01.2020
comment
@tehhowch спасибо за разъяснения! очень признателен   -  person ariestav    schedule 25.01.2020


Ответы (1)


Чтобы вернуть все ячейки на листе с именем myData, вы можете использовать myData вместо myData!A1:E:

gapi.client.sheets.spreadsheets.values.get({
    spreadsheetId: id,
    range: "myData" 
}).then(res => {
    console.log(res.result);
}, err => console.log(err));

Что касается вашего второго вопроса, насколько мне известно, невозможно получить только диапазон, в котором есть непустые значения, с использованием нотации A1.

Однако вы можете перебирать значения после того, как API вернет их, чтобы определить, какие из них имеют значения.

Из https://developers.google.com/sheets/api/guides/concepts

Обозначение A1:

Для некоторых методов API требуется диапазон в нотации A1. Это строка типа Sheet1!A1:B2, которая относится к группе ячеек в электронной таблице и обычно используется в формулах. Например, допустимые диапазоны:

  • Sheet1! A1: B2 относится к первым двум ячейкам в двух верхних строках Sheet1.
  • Sheet1! A: A относится ко всем ячейкам в первом столбце Sheet1.
  • Sheet1! 1: 2 относится ко всем ячейкам в первых двух строках Sheet1.
  • Sheet1! A5: A относится ко всем ячейкам первого столбца листа 1, начиная со строки 5.
  • A1: B2 относится к первым двум ячейкам в двух верхних рядах первого видимого листа.
  • Sheet1 относится ко всем ячейкам в Sheet1.
person Mark Longhurst    schedule 01.06.2020