excel Xlsm文件Python

tyky79it  于 2023-03-24  发布在  Python
关注(0)|答案(2)|浏览(206)

我想用openpyxl库打开一个.xlsm文件。当我试图打开它时,它给了我IndexError:索引超出范围。我还观察到,如果我在运行代码之前删除文件中所有隐藏的工作表,它将是OK的。你能帮助我吗?因为我不想修改这个问题的所有文件
我尝试修改read_only和keep_vba为True,但不起作用。

gz5pxeao

gz5pxeao1#

Openpyxl不支持.xlsm文件,如果您安装了Excel,可以使用win32com.client。为了保存时间,您需要使用pip install pywin32才能访问此库。
下面是一个打开文件的例子。

import win32com.client
o = win32com.client.DispatchEx("Excel.Application")

# Run in background, if application fails then excel may not close properly.
o.Visible = False
o.ScreenUpdating = False
o.Interactive = False

wb = o.Workbooks.Open('test.xlsm') # enter full path
ws = wb.Worksheets(1) # sheet number starting at 1
ws.cells(1, 1).value = 'test'

o.DisplayAlerts = False # automatically close save prompt.
wb.SaveAs(Filename='test.xlsm') # enter full path
o.DisplayAlerts = True
wb.Close(True)
oalqel3c

oalqel3c2#

openpyxl库不是设计来与excel VBA一起使用的,所以它不会打开xlsm文件,如果你需要打开很多结构相同的xl文件并以某种方式处理它们,那么你可以配置一个额外的excel文件,它会汇总前面的并已经处理过,你的任务不太清楚

相关问题