gpt4 book ai didi

python - 使用 win32com 进行复制粘贴时出错(Glade GTK Python)

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:49 25 4
gpt4 key购买 nike

我有一个简单的功能“复制”,用于使用 win32com 进行复制和粘贴。运行多次没有问题。

但是如果我使用按钮(GUI GTK Glade)触发函数“Copy()”,它只运行一次。第二次我收到以下错误:

Gdk-CRITICAL (recursed) **: inner_clipboard_window_procedure:
assertion `success' failed
aborting...

你能帮我吗?

复制粘贴:

import os, sys
import win32com.client

def Copy():
# Pfad zum Template
path_to_temp = r"C:\004_Python_Workspace\Persek\Template.xls"

# Pfad zum Testpaket
xlsPath = r"C:\004_Python_Workspace\Testfolder\Testanweisung_LK_ASL.xls"

# Blattname im Template und im Testpaket
Sheet = 'ECU_Config'

excel_app = win32com.client.dynamic.Dispatch('Excel.Application')

###### Kopiere ECU_Config aus Template #####
excel_workbook1 = excel_app.Workbooks.Open(path_to_temp)

excel_workbook1.Worksheets(Sheet).UsedRange.Copy()

###### Fuege in das neue Testpaket ein #####
excel_workbook2 = excel_app.Workbooks.Open(xlsPath)
excel_workbook2.Worksheets(Sheet).Range('A1').PasteSpecial()
excel_workbook2.worksheets(Sheet).Columns('A:B').AutoFit()
excel_workbook2.Close(SaveChanges=True)
del excel_workbook2

excel_workbook1.Close()
del excel_workbook1
excel_app.Quit()

Glade GtK 带按钮触发器:

def on_debug_clicked(self, object, data=None):
CopyPaste_Error.Copy()

更新 1a:直到“UsedRange.Copy()”行都是一样的。

    excel_workbook1.Worksheets(Sheet).UsedRange.Copy()
excel_app.Quit()

最佳答案

现在我找到了解决方案,但我不知道为什么。我包括“win32clipboard”

import os, sys
import win32com.client
import win32clipboard

def Copy():

win32clipboard.OpenClipboard()

# Pfad zum Template
path_to_temp = r"C:\004_Python_Workspace\Persek\Template.xls"

# Pfad zum Testpaket
xlsPath = r"C:\004_Python_Workspace\Testfolder\Testanweisung_LK_ASL.xls"

# Blattname im Template und im Testpaket
Sheet = 'ECU_Config'

excel_app = win32com.client.dynamic.Dispatch('Excel.Application')

###### Kopiere ECU_Config aus Template #####
excel_workbook1 = excel_app.Workbooks.Open(path_to_temp)

excel_workbook1.Worksheets(Sheet).UsedRange.Copy()

###### Fuege in das neue Testpaket ein #####
excel_workbook2 = excel_app.Workbooks.Open(xlsPath)
excel_workbook2.Worksheets(Sheet).Range('A1').PasteSpecial()
excel_workbook2.worksheets(Sheet).Columns('A:B').AutoFit()
excel_workbook2.Close(SaveChanges=True)
del excel_workbook2

excel_workbook1.Close()
del excel_workbook1
excel_app.Quit()

win32clipboard.CloseClipboard()

关于python - 使用 win32com 进行复制粘贴时出错(Glade GTK Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21939360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com