Есть ли способ получить фактический диапазон A1 из sheetfu - get_data_range () - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь получить фактические значения A1, используя библиотеку Sheetfu get_data_range () .

Когда я использую код ниже, он работает отлично, и я получаю то, что ожидал.

invoice_sheet = spreadsheet.get_sheet_by_name('Invoice')
invoice_data_range = invoice_sheet.get_data_range()
invoice_values = invoice_data_range.get_values()
print(invoice_data_range)
print(invoice_values)

Из операторов print () я получаю:

<Range object Invoice!A1:Q42>
[['2019-001', '01/01/2019', 'Services']...] #cut for brevity

Каков наилучший способ получить значение "A1: Q42"? Я действительно хочу только конец диапазона (Q42), потому что мне нужно построить аргумент get_range_from_a1 ()"A4: Q14". У моего листа есть заголовки (строки 1-3), а get_values ​​() включает в себя 3 строки, которые мне не нужны в списке get_values ​​() .

Полагаю, я мог бы сделать некоторые манипуляции со строками, чтобы вытащить текст между ":" и ">" в

<Range object Invoice!A1:Q42>

... но это выглядит немного неаккуратно.

Какесли коротко, было бы здорово иметь возможность вызывать get_data_range () примерно так:

invoice_sheet = spreadsheet.get_sheet_by_name('Invoice')
invoice_data_range = invoice_sheet.get_data_range(start="A4", end="")
invoice_values = invoice_data_range.get_values()

... но это больше похоже на запрос функции. (Что я с удовольствием сделаю, кстати).

1 Ответ

0 голосов
/ 02 ноября 2019

Я получил ответ от владельца Sheetfu , и следующий код предоставляет информацию, которую я ищу. Пример кода:

from sheetfu import SpreadsheetApp

spreadsheet = SpreadsheetApp("....access_file.json").open_by_id('long_string_id')
sheet = spreadsheet.get_sheet_by_name('test')
data_range = sheet.get_data_range()

range_max_row = data_range.coordinates.row + data_range.coordinates.number_of_rows - 1
range_max_column = data_range.coordinates.column + data_range.coordinates.number_of_columns - 1

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

...