Как я могу получить количество строк в таблице Google с помощью API?
Можно ли получить количество заполненных строк без выборки всей электронной таблицы или найти номер первой пустой строки?
Я использую оболочку Python API, если это имеет значение.
2 ответа
В основных документах Google API говорится, что вы можете сделать это с помощью WorksheetFeed. Так должно быть возможно из питона. https://developers.google.com/google-apps/spreadsheets/
Используя pygsheets, это вернет количество заполненных строк в электронной таблице
import pygsheets
gc = pygsheets.authorize(service_file='client_secret.json'). #authorization
worksheet = gc.open('Sign Up').sheet1. #opens the first sheet in "Sign Up"
cells = worksheet.get_all_values(include_tailing_empty_rows=False, include_tailing_empty=False, returnas='matrix')
end_row = len(cells)
print(end_row)
Я думаю, что это будет работать. Вам нужно использовать ListFeed getEntries(), чтобы найти строки, имеющие запись.
URL listFeedUrl = worksheets.get(x).getListFeedUrl();
ListFeed feed = googleservice.getFeed(listFeedUrl, ListFeed.class);
System.out.println("Number of filled rows"+feed_L.getEntries().size()+1);
System.out.println("First Empty row"+feed_L.getEntries().size()+2);
Я предполагаю, что между строками нет пустой строки. Пустые ячейки не вызывают проблем, я имею в виду, что в строке должна быть заполнена хотя бы одна ячейка.
Вы можете использовать библиотеку Sheetfu и ее метод get_data_range
. Он в основном возвращает диапазон, содержащий только данные.
from sheetfu import SpreadsheetApp
sa = SpreadsheetApp('path/to/secret.json')
spreadsheet = sa.open_by_id(spreadsheet_id='<spreadsheet id>')
sheet = spreadsheet.get_sheet_by_name('Sheet1')
data_range = sheet.get_data_range()
Это вычислит координаты диапазона, который содержит данные. Затем вы можете установить значения, заметки, фон и т. Д., Используя следующее:
values = data_range.get_values()
notes = data_range.get_notes()
backgrounds = data_range.get_backgrounds()
Объект Range содержит множество методов. Ознакомьтесь с документацией здесь.