我正在创建一个自动化程序,复制聚焦单元格的信息并将其保存到变量中。虽然它确实有效,但当我尝试使用
keyboard
库或 pyautogui
write
函数在记事本文档上键入变量时,当字符超过 2 或 4 个时,它会停止工作。当我尝试写入较大数量(例如 9 个字符)时,它开始延迟/滞后。我不知道该怎么办,因为我尝试了很多库,但似乎都不起作用。我需要对程序做的就是将变量写入记事本文档中。
有一个函数可以复制Excel上的焦点单元格并将其保存到全局变量中。之后,它使用
pyautogui
下降一个单元格。这是我当前的代码:
import win32com.client as win32
import pyautogui
import global_variables
def copiar():
try:
excel = win32.GetActiveObject("Excel.Application")
except:
print("Excel not found.")
return
# Obter o nome da planilha ativa
workbook_name = excel.ActiveWorkbook.Name
# Se a planilha ativa não for a desejada, você pode abrir a planilha usando o seu caminho
if workbook_name != 'CONEMB_ZLE.xlsx':
# Exibe uma mensagem de aviso
print("Excel not found, open.")
return
# Tornar o Excel visível
excel.Visible = True
# Selecionar a planilha ativa
sheet = excel.ActiveSheet
# Obter o valor da célula selecionada
global_variables.valor_global = sheet.Application.Selection.Text
# Imprimir o valor
#print(global_variables.valor_global)
# Pressionar a tecla de seta para baixo no teclado
pyautogui.press('down')
这是将信息粘贴到记事本文档上的代码:
while True:
focus = pygetwindow.getWindowsWithTitle('CONEMB_ZLE - Excel')[0]
focus.activate()
copiar()
item = global_variables.valor_global
focus = pygetwindow.getWindowsWithTitle('transportadora - Bloco de notas')[0]
focus.activate()
print(item)
keyboard.write(item)
sleep(2)
keyboard.press('enter')
它从 Excel 选项卡开始并复制数据。然后,它会转到“记事本”选项卡,并将包含数据的变量写入记事本文档中。
这很简单,你不需要使用
keyboard.write()
函数,只需将变量粘贴进去即可。这里,我决定使用pyperclip
。当我测试代码时,我注意到pyperclip.paste()
在终端旁边的不同应用程序中不起作用,所以我想出了一个备份解决方案。首先,将项目复制到剪贴板:
#import pyperclip
pyperclip.copy(item)
然后由您决定如何粘贴它。在这种情况下,您可以使用
keyboard
按 'ctrl+v':
#import pyperclip
pyperclip.copy(item)
keyboard.press_and_release('ctrl+v')
或者,如果失败,您可能想尝试使用
pyautogui.typewrite()
:
pyautogui.typewrite(item)
我认为复制粘贴方法是最有效的,并且可能会解决延迟问题。