win32com 的问题

Problems with 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')

两次尝试return以下问题给我:

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() 在那段之前也什么都没有。

我需要代码来完成这一步以开始格式化整个文件。

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

  1. "The file name or path does not exist" - 这意味着您尝试打开的文件从未创建过,或者文件的路径可能不正确。
  2. "The file is being used by another program" - 这意味着另一个程序正在使用该文件。 excel 文件正在使用中,您不能对其进行更改。
  3. "The workbook you are trying to save has the same name as another currently open" - 这意味着您尝试使用的 excel 文件的文件名已经在该目录中,并且另一个文件已打开或正在被另一个人使用程序。

检查以确保您没有违反上述任何一项。

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

我无法相信这个错误是多么晦涩难懂,我们找到了使用等效 .NET 代码寻找类似问题的解决方案:

要修复它,请在 64 位架构的 'C: \ Windows \ SysWOW64 \ config \ systemprofile \' 或 32 位服务器的 'C: \ Windows \ System32 \ config \ systemprofile \' 下创建一个名为 'Desktop' 的文件夹。

工作完美。

(来源:Whosebug 英文答案:excel access denied with win32 python pywin32