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