win32com Excel.Application不再打开文档

时间:2017-01-05 18:32:01

标签: python excel win32com

这是在上周工作但由于某种原因它今天停止工作,可能是因为新的一年?

"AttributeError: '<win32com.gen_py.Microsoft Excel 15.0 Object Library.Workbooks instance at 0x20920640>' object has no attribute 'open'"

我收到以下错误消息:

FLOAT(9,2)

有人可以帮忙吗?

谢谢!

5 个答案:

答案 0 :(得分:1)

奇怪的是,我和@AndyDo遇到了同样的问题。我最初用于访问Excel应用程序的代码停止工作。

原创(非工作):

** 注意 - 显然我与我使用的示例中的情况不匹配。但是,我不确定为什么代码之前没有错误。

来源:How to open a password protected excel file using python?

public function redirectToProvider() {
    return Socialite::with('google')->redirect();
}

public function handleProviderCallback(Request $request) {
    $adwords_api_response = Socialite::with('google')->getAccessTokenResponse($request->code);

    dd($adwords_api_response);
}

然后,我更新了案例,如下面的代码所示,以纠正属性错误。

修订(工作):

来源 - Python Excel Mini Cookbook

import win32com.client as w3c

xlapp = w3c.Dispatch('Excel.Application')
xlwb = xlapp.Workbooks.open(file.xlsx, False, True, None, file_password)
xlsheet = xlwb.WorkSheets('my_sheet_name')

我想知道公式栏被激活的另一个打开的工作簿是否会影响该问题。我将不得不做更多的调查。

答案 1 :(得分:0)

没有open方法,它是Open。 Python区分大小写:)

答案 2 :(得分:0)

当代码第一次运行得很好时,我来寻找这个错误,但是当我再次运行它时,抛出了异常“ AttributeError:Excel.Application.Workbooks”。

这不是技术解决方案,这只是一个愚蠢(非常常见)的过滤器。

我在后台打开了一个Excel文件,并且代码关闭了Excel应用程序(当然,我们应该只关闭工作簿)。关闭Excel后,打开的我的文件在后台弹出“保存”对话框。当我再次运行相同的代码时,Excel Application成为一个问题,因为它尚未从Python发布。

也许,也许,您也在做类似的事情。举手击掌!!你不是唯一的一个!

答案 3 :(得分:0)

  1. 我遇到了类似的问题-运行以下代码时:
  from win32com.client import Dispatch    
  import os

  list_of_files=os.listdir(path)
  xl = Dispatch('Excel.Application')
  xlWb = xl.Workbooks.Open(file)

它曾经工作过,但今天却在尝试运行此代码时失败。

  1. 解决方案是:
    • 添加:import win32com.client as w3c
    • 将:xl = Dispatch('Excel.Application')更改为xl = w3c.Dispatch('Excel.Application')

答案 4 :(得分:-1)

我遇到了这个问题“AttributeError: Excel.Application.Workbooks” 并修复它,只需关闭在后台打开的任何 Excel 工作表,它应该被修复。