gpt4 book ai didi

Python 2.7 - win32com.client - 将工作表从一个工作簿移动到另一个工作簿

转载 作者:太空狗 更新时间:2023-10-30 02:30:26 26 4
gpt4 key购买 nike

我正在尝试使用 python 2.7 将一个 excel 工作表从工作簿 A 移动到工作簿 B,但我一直收到错误。

Python 脚本:

import win32com.client

excel=win32com.client.Dispatch('Excel.Application')
excel.Visible=False
wbP=excel.Workbooks.Open('C:\Full Path\WorkbookA.xlsx')
wbG=excel.Workbooks.Open('C:\Full Path\WorkbookB.xlsx')
wbG.Worksheets("Sheet1").Select
wbG.Worksheets("Sheet1").Move(before=wbP.Worksheets("Annual"))
wbP.SaveAs('C:\Full Path\WorkbookA.xlsx')
excel.Application.Quit()

我收到的错误:

Traceback (most recent call last):
File "C:\Full Path\test.py", line 10, in <module>
wbG.Worksheets("Sheet1").Select
File "C:\Python27\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x8\Sheets.py", line 120, in __call__
ret = self._oleobj_.InvokeTypes(0, LCID, 2, (9, 0), ((12, 1),),Index
com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None)

谢谢!

解决方法:

请参阅伯尼的评论。我需要移动的工作表名为 Charts 而不是 Sheet1。

最佳答案

我将评论写在答案中,因为这样更容易阅读...

由于错误发生在该行,问题似乎在于 WorkbookB.xlsx 中没有“Sheet1”

以下是您可能希望在代码中更改的一些内容:

  1. 您可以使用 win32com.client.DispatchEx 创建一个新的 Excel 实例,以避免干扰任何打开的 Excel 实例。如果您使用 DispatchEx,您可以将 .Visible 设置为 False。在此处进一步阅读有关 DispatchEx 的信息:http://timgolden.me.uk/python/win32_how_do_i/start-a-new-com-instance.html

  2. \是转义字符。使用原始字符串或正斜杠,例如:wbG=excel.Workbooks.Open(r'C:\Full Path\WorkbookB.xlsx')wbG=excel.Workbooks.Open('C:/Full Path/WorkbookB.xlsx')

结合这些建议,代码变成:

from win32com.client import DispatchEx

excel = DispatchEx('Excel.Application')
wbP=excel.Workbooks.Open(r'C:\Full Path\WorkbookA.xlsx')
wbG=excel.Workbooks.Open(r'C:\Full Path\WorkbookB.xlsx')
# note altered sheet name; also .Select is not required
wbG.Worksheets("Charts").Move(Before=wbP.Worksheets("Annual"))
wbP.SaveAs(r'C:\Full Path\WorkbookA.xlsx')
excel.Quit()
del excel # ensure Excel process ends

关于Python 2.7 - win32com.client - 将工作表从一个工作簿移动到另一个工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26935793/

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