我正在使用以下代码在 Excel 中打开和显示工作簿:
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open('my_sheet.xlsm')
ws = wb.Worksheets('blaaaa')
excel.Visible = True
当文件“my_sheet.xlsm”已经打开时,Excel 会询问我是否要重新打开它而不保存。
我怎么能提前检查工作簿是否已经打开,如果是,就把它带到前面?
编辑:现在发现:
if excel.Workbooks.Count > 0:
for i in range(1, excel.Workbooks.Count+1):
if excel.Workbooks.Item(i).Name is 'my_sheet.xlsm':
wb = excel.Workbooks.Item(i)
break
还有一个问题:我的工作表包含一些标题,我在其中启用了一些过滤。因此,当设置过滤器时,当我从 Python 打开工作簿时,它有时会要求我输入一个唯一的名称来保存过滤器。这是为什么?这是对话:
编辑好的,这里它说(用德语)后一个问题是 2007 年和 2010 年文件中的一个已知错误:https ://social.msdn.microsoft.com/Forums/de-DE/3dce9f06-2262-4e22-a8ff- 5c0d83166e73/excel-api-interne-namen如果您以编程方式打开 Excel-Files,它似乎存在。不知道有没有解决办法。