这是工作上周,但由于某些原因,今天停止工作,可能是因为新的一年?
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'"
有人能帮帮忙吗?
谢谢!
发布于 2019-03-18 21:55:58
当代码第一次运行正常,但再次运行时抛出异常"AttributeError: Excel.Application.Workbooks“时,我来寻找这个错误。
这不是一个技术解决方案,这只是一个愚蠢的(这是非常常见的)过滤器。
我在后台打开了一个Excel文件,代码关闭了Excel应用程序(当然,我们应该只关闭工作簿)。当Excel关闭时,我打开的文件在后台弹出保存对话框。当我再次运行同样的代码时,Excel应用程序成了一个问题,因为它还没有从Python中发布。
也许,只是也许,你也在做类似的事情。击掌!!你不是唯一的一个!
发布于 2017-09-28 22:49:11
奇怪的是,我遇到了与@AndyDo相同的问题。我最初用来访问Excel应用程序的代码停止工作。
原始(不工作):
**注意-很明显,我与我使用的示例中的大小写不匹配。然而,我不确定为什么以前的代码没有错误。
来源:How to open a password protected excel file using python?
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')
然后,我更新了案例,如下面的代码所示,以纠正属性错误。
修订版(工作中):
来源- Python Excel Mini Cookbook
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')
我想知道激活了公式栏的另一个打开的工作簿是否影响了这个问题。我得做更多的调查。
发布于 2021-06-30 14:49:10
我遇到了这个问题"AttributeError: Excel.Application.Workbooks“,要解决这个问题,只需关闭任何在后台打开的Excel工作表,它就应该被修复。
https://stackoverflow.com/questions/41492210
复制相似问题