鱼C论坛

 找回密码
 立即注册
查看: 73|回复: 3

Python处理Excel运行报错

[复制链接]
发表于 2024-9-13 10:28:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Traceback (most recent call last):
  File "c:\Users\EDY\Desktop\python\Z台账代码2023.8.9\最终完整版第三版) copy 2.py", line 273, in <module>
    app = xw.App(visible = True, add_book= False) #启动Excel程序窗口,但不新建工作簿
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\xlwings\main.py", line 294, in __init__
    self.impl = engines.active.apps.add(
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\xlwings\main.py", line 203, in add      
    return App(impl=self.impl.add(**kwargs))
                    ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\xlwings\_xlwindows.py", line 497, in add
    return App(spec=spec, add_book=add_book, xl=xl, visible=visible)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\xlwings\_xlwindows.py", line 521, in __init__
    self._xl = COMRetryObjectWrapper(DispatchEx("Excel.Application"))
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\EDY\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\__init__.py", line 145, in DispatchEx
    dispatch = pythoncom.CoCreateInstanceEx(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2146959355, '服务器运行失败', None, None)
PS C:\Users\EDY\Desktop\python>


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-9-13 10:28:43 | 显示全部楼层
出现 `pywintypes.com_error: (-2146959355, '服务器运行失败', None, None)` 错误,通常是因为 Excel 进程出现了一些问题。下面是一些可能的解决方案:

1. **确保Excel未被后台挂起:**
   - 打开任务管理器,找到所有运行的 Excel 进程,并将它们全部结束,然后再运行你的脚本。

2. **检查Excel的安装:**
   - 确保你的 Excel 安装正常,并且可以手动打开。

3. **重启计算机:**
   - 有时候简单地重启计算机可以解决许多未知的系统问题。

4. **使用管理员权限运行脚本:**
   - 有些系统权限问题可能会阻止 Excel 的正常启动,试着以管理员身份运行你的 Python 脚本。

5. **检查Python和库的版本兼容性:**
   - 确保你的 `xlwings` 和 `pywin32` 库版本是最新的,并且与 Python 版本兼容。
   - 你可以使用以下命令升级:
   
pip install --upgrade xlwings pywin32

6. **尝试使用xlwings的启动设置:**
   - 你可以试着在初始化 `App` 实例时设置 `visible=True` 和 `add_book=False` 等参数:
   
import xlwings as xw
     app = xw.App(visible=True, add_book=False)

如果以上方法仍然无效,提供更多的环境信息(例如操作系统版本、Excel版本等)可能有助于进一步诊断问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-13 10:33:58 | 显示全部楼层
没有改动过环境,重启电脑也无法解决,后台关闭也不好使
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-13 10:41:28 | 显示全部楼层
冰菲 发表于 2024-09-13 10:33
没有改动过环境,重启电脑也无法解决,后台关闭也不好 ...


明白了,那我们可以尝试一些更加深入的方法来解决这个问题:

1. **确保COM模块安装正确:**

   - 重新安装 `pywin32`。在命令行中使用以下命令:
   
pip uninstall pywin32
     pip install pywin32

2. **替换DispatchEx为更低级的调用:**

   如果 `DispatchEx` 无法正常工作,可以尝试直接使用 `Dispatch`:
from win32com.client import Dispatch
   import xlwings as xw

   excel = Dispatch("Excel.Application")
   app = xw.App(xl=excel, visible=True, add_book=False)

3. **检查文件权限:**

   确保你正在使用的 Excel 文件没有只读属性,并且你有足够的权限来访问这些文件。

4. **系统注册表修复:**

   有时候注册表中的Office相关键值可能会损坏,以下是一个修复方法(注意:修改注册表有风险,请仔细操作):
   - 打开注册表编辑器(按 `Win + R`,输入 `regedit`)。
   - 导航到 `HKEY_CLASSES_ROOT\TypeLib` 和 `HKEY_CLASSES_ROOT\CLSID`。
   - 在这些位置查找和Excel相关的键值,确保它们是完整的。如果不确定,可以备份注册表并进行相应的修复。

5. **Office修复安装:**

   有时候,重新修复 Office 安装可以解决问题:
   - 打开控制面板,选择“程序和功能”。
   - 找到 Microsoft Office,右键选择“更改”。
   - 选择“修复”选项,然后按照提示进行。

6. **检查杀毒软件:**

   有时候,某些杀毒软件可能会干扰 COM 的功能。尝试临时禁用杀毒软件,然后再次运行脚本。

试试这些方法,如果还是不行,请提供更多的信息如 Excel 版本、Python 精确版本等,以便更进一步诊断问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 08:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表