Python WinAPI检查工作表是否存在。

3

我正在使用这个:

from win32com.client import Dispatch
excel_file = Dispatch("Excel.Application")
excel_file.Workbooks.Open(excel_result_path)
excel_file.Visible = 1
mySheet = excel_file.Worksheets.Add()
mySheet.Name = "name"

这个程序运行良好。唯一的问题是,如果工作表已经存在,我会收到一个错误提示,告诉我该工作表已经存在。

文件 "..\dynamic.py",第554行,setattr pywintypes.com_error: (-2147352567, '出现异常。', (0, 'Microsoft Excel', '无法将工作表命名为与另一个工作表、对象库或Visual Basic引用的工作簿相同的名称。', 'xlmain11.chm', 0, -2146827284), None)

所以我的问题是,如何检查Excel工作表名称是否已经存在?


你能捕获异常吗?或者检查一下 "name" 是否在 wb.Sheets.Name 中存在?如果它已经存在,你想做什么? - doctorlove
2个回答

4
'name' in [excel_file.Sheets(i).Name for i in range(1,excel_file.Sheets.Count+1)]

另一种解决方案在此:https://dev59.com/pVoT5IYBdhLWcg3w-DO6#37966737 - sm535
是的,但那个解决方案使用了一个不属于原始问题的库。 - LeanMan
该库无法完成操作者所要求的功能。 - Charalamm

0
稍微更易读的解决方案:
'name' in [sheet.Name for sheet in excel_file.Sheets]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接