使用OCR和Tesseract撤消插入或更新Google Sheet Automation

wko9yo5t  于 2022-10-23  发布在  Go
关注(0)|答案(1)|浏览(166)

我写了一个代码来扫描序列号图像并创建一个 Dataframe ,我将其称为“df_sn”。我有一个谷歌表格,我想用df_sn Dataframe 的选定序列号更改(更新或插入单元格)。
由于我需要插入新行或更新现有行,操作分歧的问题。
为书面形式的可能性创建列表

updating = ['Updating', 'updating', 'update', '2']
inserting= ['inserting', 'Inserting', 'insert', '1']

输入所需的操作

desirable_action = input("Do You Want Start An Inserting Or Updating Process? ")

下面我为更新创建了一些if条件

if desirable_action in updating:
  print('Updating ' + "Process Started!")
  desirable_row = input("Which row do you want to update? ")
  desirable_col = input("Which column do you want to update? ")
  cell = sheet.cell(desirable_row,desirable_col)
  print("Cell Before Update: ", cell)

下面的行通过索引和列模式用df_sn中的值更新单元格(行,列)

sheet.update_cell(desirable_row,desirable_col,df_sn.at[1,'Serial Number'])

print('Cell After Update: ', cell)

所以,我需要但无法想到的解决方法是:
1.能够像对话框中的输入函数id est一样撤消更新

nwnhqdif

nwnhqdif1#

感谢@TheMaster给了它“排队”的想法。
因此,在我的if条件中,我向队列插入了一个append方法

undo_storage = []

updating = ['Updating', 'updating', 'update', '2']
undo = ["Undo", "undo"]
inserting =['inserting', 'Inserting', 'insert', '1']

desirable_action = []

while desirable_action != 'q':
  desirable_action = input("Do You Want to Start An Inserting Process, Updating Process Or Undo the Previous Change? (press q to quit) ")

if desirable_action in updating:
  print('Updating ' + "Process Started!")

  desirable_row = input("Which row do you want to update? ")

  desirable_col = input("Which column do you want to update? ")

  old_value = sheet.cell(desirable_row,desirable_col)

  undo_storage.append(old_value.value)

  print("Cell Before Update: ", old_value)

  sheet.update_cell(desirable_row,desirable_col,df_sn.at[1,'Serial Number'])

  new_value = sheet.cell(desirable_row,desirable_col)

  print('Cell After Update: ', new_value)

你可以看到有一条新线:

undo_storage.append(old_value.value)

因此,在while循环中的if条件中,我将旧值保存在队列列表中。就像常规的“存储线”一样,第一个输入元素就是第一个输出元素(FIFO)。
更新工作表中的单元格并希望撤消更改后,我可以对第一个问题和下面的if条件回答“撤消”:

if desirable_action in undo:
sheet.update_cell(desirable_row,desirable_col,undo_storage.pop(0))
print("Undo aplied! Cell after undo: ",old_value)

undo_storage.pop(0)”将使存储在队列列表中的值成为要插入单元格中的新值。完成!撤消功能运行良好!

相关问题