辉煌仪奇 2021-12-03 16:35 采纳率: 47.4%
浏览 69
已结题

Django 在windows server 2019运行出错

django 调用函数如下,报错位置如下,报错代码如下。
有知道这个错误的小伙伴帮助出个主意。
电脑已经安装wps,系统是Windows server2019

# 截图保存
def create_save_img(file_path, img_name):
    # 读取excel内容转换为图片
    import pythoncom
    from win32com.client import DispatchEx
    from PIL import ImageGrab

    import os

    file_path = os.path.abspath(file_path)
    pythoncom.CoInitialize()  # excel多线程相关
    excel = DispatchEx("Excel.Application")  # 启动excel

    # del excel #这个地方很重要,杀死excel进程是这个地方起作用

    # excel.Visible = False  # 不显示Excel,而True可视化
    excel.DisplayAlerts = True  # 是否显示警告,关闭系统警告(保存时不会弹出窗口)
    workbook = excel.workbooks.Open(file_path)  # 打开excel
    sheet = workbook.worksheets["Sheet1"]  # 选择sheet
    screen_area = sheet.UsedRange  # 有内容的区域
    screen_area.CopyPicture()  # 复制图片区域
    sheet.Paste()  # 粘贴
    '''
        name = str(uuid.uuid4())  # 重命名唯一值
        image_name = name[:6]
        excel.Selection.ShapeRange.Name = image_name  # 将刚刚选择的Shape重命名,避免与已有图片混淆
    '''
    excel.Selection.ShapeRange.Name = img_name  # 将刚刚选择的Shape重命名,避免与已有图片混淆
    sheet.Shapes(img_name).Copy()  # 选择图片

    img = ImageGrab.grabclipboard()  # 获取剪贴板的图片数据
    img.save(r"D:/static/media/img/" + img_name)
    workbook.Close(False)  # 关闭Excel文件,不保存
    excel.Quit()  # 退出excel
    del excel  # 这个地方很重要,杀死excel进程是这个地方起作用
    pythoncom.CoUninitialize()  # 关闭多线程
    os.remove(file_path)

程序写了备注,报错在函数的
excel = DispatchEx("Excel.Application") # 启动excel
报错内容如下

Exception in thread Thread-11:
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\threading.py", line 973, in _bootstrap_inner
self.run()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\threading.py", line 910, in run
self._target(*self._args, **self.kwargs)
File "C:\inetpub\wwwroot\BangzhuoProject\apps\tools\pluginunit.py", line 234, in create_save_img
excel = DispatchEx("Excel.Application") # 启动excel
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\lib\site-packages\win32com\client_init
.py", line 145, in DispatchEx
dispatch = pythoncom.CoCreateInstanceEx(
pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)

·

  • 写回答

1条回答 默认 最新

  • 辉煌仪奇 2021-12-03 16:41
    关注

    检查了注册表,注册表中存在 Excel.Application

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月4日
  • 创建了问题 12月3日

悬赏问题

  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥20 使用Photon PUN2解决游戏得分同步的问题
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM