Python win32com Excel。应用程序可以';我不能再打开文件了
这是上周的工作,但由于某种原因,它今天停止工作,可能是因为新年Python win32com Excel。应用程序可以';我不能再打开文件了,python,excel,win32com,Python,Excel,Win32com,这是上周的工作,但由于某种原因,它今天停止工作,可能是因为新年 def remove_strikethroughs(xlsx): excel = win32com.client.Dispatch('Excel.Application') xl = pd.ExcelFile(xlsx) sheet_names = xl.sheet_names for sheet in sheet_names: if any(tab in sheet for tab
def remove_strikethroughs(xlsx):
excel = win32com.client.Dispatch('Excel.Application')
xl = pd.ExcelFile(xlsx)
sheet_names = xl.sheet_names
for sheet in sheet_names:
if any(tab in sheet for tab in tabs_used):
#print (sheet)
wb = excel.Workbooks.Open(xlsx)
ws = wb.WorkSheets(sheet)
for cell in ws.Range('A5:B150'):
if cell.Font.Strikethrough == True:
cell.value = '[MDU]' + str(cell)
wb.Save()
wb.Close()
excel.Visible = True
excel.DisplayAlerts = True
excel.Application.Quit()
我收到以下错误消息:
"AttributeError: '<win32com.gen_py.Microsoft Excel 15.0 Object Library.Workbooks instance at 0x20920640>' object has no attribute 'open'"
“AttributeError:”对象没有属性“open”
有人能帮忙吗
谢谢 没有
open
方法,它是open
。Python区分大小写:)奇怪的是,我遇到了与@AndyDo相同的问题。我最初用来访问Excel应用程序的代码停止工作
原件(非工作):
**
注意-很明显,我没有匹配我使用的示例中的案例。但是,我不确定为什么代码以前工作时没有错误
资料来源:
然后,我更新了下面代码中的案例,以纠正属性错误
修订(工作):
来源-
我想知道激活了公式栏的另一个打开的工作簿是否影响了该问题。我必须做更多的调查。当代码第一次正常运行时,我来寻找这个错误,但当我再次运行它时,抛出了一个异常“AttributeError:Excel.Application.Workbook” 这不是一个技术解决方案,这只是一个愚蠢(这是很常见的)过滤器 我在后台打开了一个Excel文件,代码关闭了Excel应用程序(当然,我们应该只关闭工作簿)。当Excel关闭时,我打开的文件的“保存”对话框在后台弹出。当我再次运行相同的代码时,Excel应用程序成了一个问题,因为它还没有从Python中发布 也许,只是也许,你也在做类似的事情。击掌!!你不是唯一一个
- 添加:
将win32com.client作为w3c导入
- 更改:
为xl=Dispatch('Excel.Application')
xl=w3c.Dispatch('Excel.Application')
您好,这在上周使用“open”时起作用,在我将其更改为“open”后,出现以下错误消息:AttributeError:“”对象没有“WorkSheets”属性@AndyDo:这可能是因为该属性名为
WorkSheets
,而不是WorkSheets
。请参阅。@AndyDo这是完全相同的错误。记住,python是区分大小写的,所以工作表!=工作表
。在其中任何地方都没有对小写“open”的调用,您确定发布了您正在使用的代码吗?您修改的工作代码在循环使用受密码保护的.xlsb文件时对我有效。我这样做是盲目的,因为我真的找不到任何文档-1)谢谢你的回答,2)xlapp.workbooks.open中的参数在做什么/引用什么?文件,假,假,无,密码不起作用-但文件,假,真,无,密码起了作用。
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')
import win32com.client as w3c
xlapp = w3c.gencache.EnsureDispatch('Excel.Application')
xlwb = xlapp.Workbooks.Open(file.xlsx, False, True, None, file_password)
xlsheet = xlwb.Worksheets('my_sheet_name')
from win32com.client import Dispatch
import os
list_of_files=os.listdir(path)
xl = Dispatch('Excel.Application')
xlWb = xl.Workbooks.Open(file)