win32com的问题

时间:2019-05-28 16:44:06

标签: python python-3.x win32com

我的代码中存在以下错误,我已经尝试了所有方法,但无法解决:

1°失败

excel = win32com.client.Dispatch("Excel.Application")
wb = excel.Workbooks.Open(os.path.join(os.getcwd(),diretorio_BKP + filename +
                          '  '+str(nome_arq_parcial)+' -.xlsx'))
ws = wb.Worksheets(1).Select()
ws = wb.Worksheets(1)
print('abrir o arquivo de novo')

2°失败

excel = win32com.client.Dispatch("Excel.Application")
wb = excel.Workbooks.Open(diretorio_BKP + filename +'  '+
                          str(nome_arq_parcial)+' -.xlsx')
ws = wb.Worksheets(1).Select()
ws = wb.Worksheets(1)
print('abrir o arquivo de novo')

两次尝试都将以下问题反馈给我:

ERRO:    (-2147352567, 'Exception.', (0, 'Microsoft Excel', "Microsoft Excel does not you can access the file '\\\\ IEMEN \\ file location -.xlsx'. There are several reasons possible: \ r \ n \ r \ n • The file name or path does not exist. \ r \ n • The file is being used by another program. \ r \ n • The workbook you are trying to save has the same name as another currently open \ r \ nfolder. ", 'xlmain11.chm', 0, -2146827284), None)

您可以看到已经尝试离开绝对路径,已经尝试离开完整路径,我已经放入excel.Application.Quit() 在那之前也没有任何作用。

我需要执行此步骤的代码才能开始格式化整个文件。

2 个答案:

答案 0 :(得分:0)

有关错误消息的详细信息,此错误有多种可能的原因:

  1. “文件名或路径不存在”-这意味着您试图打开的文件从未创建,或者可能是文件路径不正确。
  2. “该文件正在被另一个程序使用”-这意味着另一个程序正在积极使用此文件。使用中的Excel文件无法更改。
  3. “您要保存的工作簿与另一个当前打开的工作簿具有相同的名称”-这意味着您要使用的excel文件的文件名已经在该目录中,而另一个文件是打开或被另一个程序使用。

检查以确保您没有违反上面的任何条款。

答案 1 :(得分:0)

解决方案!令人惊奇的是:

我简直不敢相信这个错误是多么令人费解,我们找到了解决方案,以等效的.NET代码寻找类似的问题:

要修复此问题,请在64位体系结构的“ C:\ Windows \ SysWOW64 \ config \ systemprofile \”下创建一个名为“ Desktop”的文件夹,或者在32位操作系统的“ C:\ Windows \ System32 \ config \ systemprofile \”下创建一个名为“ Desktop”的文件夹位服务器。

精打细算。

(来源:StackOverflow用英语回答:excel access denied with win32 python pywin32