我正在尝试使用Sheetfu库的get_data_range()获取实际的A1值。

当我使用下面的代码时,它可以完美地工作,并且我得到了期望的结果。

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()


...但这更像是功能请求。 (我很乐意做顺便说一句)。

最佳答案

我收到了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属性目前尚未记录,但可用,应在接下来的几周内正式记录。

10-08 02:37