如何使用python GSPREAD查找google电子表格的第一个空行?

2024-05-23 16:25:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力编写代码,找到我的第一个空行谷歌工作表。

我正在使用来自github.com/burnash/gspread的gspread包

如果有人能帮忙,我会很高兴的:)

我当前刚导入了模块并打开了工作表

scope = ['https://spreadsheets.google.com/feeds']

credentials = ServiceAccountCredentials.from_json_keyfile_name('ddddd-61d0b758772b.json', scope)

gc = gspread.authorize(credentials)

sheet = gc.open("Event Discovery")
ws = sheet.worksheet('Event Discovery')

我想找到第1158行,它是带有函数的工作表的第一个空行,这意味着每次填充旧空行时,它都会找到下一个空行 See here


Tags: 模块代码githubcomeventjsongcdiscovery
3条回答

此替代方法通过计算可能跳过值的行(如文档中的特殊标题部分)以及对第一列N进行采样来解决接受答案的问题:

def next_available_row(sheet, cols_to_sample=2):
  # looks for empty row based on values appearing in 1st N columns
  cols = sheet.range(1, 1, sheet.row_count, cols_to_sample)
  return max([cell.row for cell in cols if cell.value]) + 1
def find_empty_cell():
    alphabet = list(map(chr, range(65, 91)))
    for letter in alphabet[0:1]: #look only at column A and B
        for x in range(1, 1000):
            cell_coord = letter+ str(x)
            if wks.acell(cell_coord).value == "":
                return(cell_coord)

我用这个函数来查找第一个空单元格。我找不到空行,因为其他列已经有值。

哦,在2.7到3.6之间有一些映射问题,需要我将字母表转换成字符串。

我用以下方法解决了这个问题:

def next_available_row(worksheet):
    str_list = filter(None, worksheet.col_values(1))
    return str(len(str_list)+1)

scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('auth.json', scope)
gc = gspread.authorize(credentials)
worksheet = gc.open("sheet name").sheet1
next_row = next_available_row(worksheet)

#insert on the next available row

worksheet.update_acell("A{}".format(next_row), somevar)
worksheet.update_acell("B{}".format(next_row), somevar2)

相关问题 更多 >