gspread 清除特定单元格值
gspread clear specific cell value
我想清除特定单元格的值。目前我的脚本运行大致如下:
cell_list = worksheet.range(1, 1, len(rows), column_length)
for cell in cell_list:
cell.value = rows[cell.row - 1][cell.col - 1]
worksheet.update_cells(cell_list)
我只想覆盖我的旧数据以保存一些 API 调用,因此我之前不使用 worksheet.clear()。一些新值可能是 None,然后应清除这些单元格。
我的问题是:
例如,如果我在单元格 B2 中有值“a”并且我现在将 B2 设置为值“None”(cell.value = None)并且我更新工作表“a”将住在B2。所以它没有更新单元格,旧值保持不变。
我可以将 B2 设置为空字符串,但问题在于它不是空单元格,因此如果我想在它之后排序(在浏览器中),它会将它列在顶部,因为它是一个空字符串而不是空的。如果我随后在浏览器中手动清除单元格并再次对其进行排序,它将按照我想要的方式进行排序。
更新说明:
我有一个单元格列表,我想用我的 table 中的新值更新它。可能发生一个单元格之前包含一个值,但更新后的单元格不应再包含一个值。
所以 A1 的旧值是例如“5”和 A1 的新值应该为空。
问题是,如果我将值 None 分配给单元格列表中的单元格,单元格将在更新后保留旧值。所以该值仍然是“5”。
如果我将一个空字符串传递到要更新的单元格中,则新单元格是空的,正如所希望的那样。但是现在有一个问题,排序对我来说不能正常工作,所以这对我来说不是一个选择。我之前也可以清除整个 table,但我尽量避免这种情况以节省 API 调用。
所以我正在寻找一种方法来告诉单元格它不包含值
我认为您的问题的原因是 worksheet.update_cells(cell_list)
。在gspread中,ValueInputOption的默认值好像是RAW
。我认为这样会发生这样的错误。所以为了避免这种情况,请修改如下。
发件人:
worksheet.update_cells(cell_list)
收件人:
worksheet.update_cells(cell_list, value_input_option='USER_ENTERED')
- 通过这个修改,我认为
""
这个空字符串可以用来清除单元格。
参考文献:
我想清除特定单元格的值。目前我的脚本运行大致如下:
cell_list = worksheet.range(1, 1, len(rows), column_length)
for cell in cell_list:
cell.value = rows[cell.row - 1][cell.col - 1]
worksheet.update_cells(cell_list)
我只想覆盖我的旧数据以保存一些 API 调用,因此我之前不使用 worksheet.clear()。一些新值可能是 None,然后应清除这些单元格。
我的问题是: 例如,如果我在单元格 B2 中有值“a”并且我现在将 B2 设置为值“None”(cell.value = None)并且我更新工作表“a”将住在B2。所以它没有更新单元格,旧值保持不变。
我可以将 B2 设置为空字符串,但问题在于它不是空单元格,因此如果我想在它之后排序(在浏览器中),它会将它列在顶部,因为它是一个空字符串而不是空的。如果我随后在浏览器中手动清除单元格并再次对其进行排序,它将按照我想要的方式进行排序。
更新说明:
我有一个单元格列表,我想用我的 table 中的新值更新它。可能发生一个单元格之前包含一个值,但更新后的单元格不应再包含一个值。
所以 A1 的旧值是例如“5”和 A1 的新值应该为空。 问题是,如果我将值 None 分配给单元格列表中的单元格,单元格将在更新后保留旧值。所以该值仍然是“5”。
如果我将一个空字符串传递到要更新的单元格中,则新单元格是空的,正如所希望的那样。但是现在有一个问题,排序对我来说不能正常工作,所以这对我来说不是一个选择。我之前也可以清除整个 table,但我尽量避免这种情况以节省 API 调用。
所以我正在寻找一种方法来告诉单元格它不包含值
我认为您的问题的原因是 worksheet.update_cells(cell_list)
。在gspread中,ValueInputOption的默认值好像是RAW
。我认为这样会发生这样的错误。所以为了避免这种情况,请修改如下。
发件人:
worksheet.update_cells(cell_list)
收件人:
worksheet.update_cells(cell_list, value_input_option='USER_ENTERED')
- 通过这个修改,我认为
""
这个空字符串可以用来清除单元格。