Python和Excel:尽管XlSaveConflictResolution值为

2021-06-14 23:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python程序中的Excel.Application COM对象打开一个CSV文件并将其保存为Excel工作簿。如果目标文件已经存在,则系统会提示我以下消息:“此位置已存在名为“…”的文件。是否要替换?”尽管我已经将XlSaveConflictResolution值设置为xlLocalSessionChanges,这应该会自动覆盖更改,而无需提示,或者我是这么想的,但还是出现了该消息。

我使用的是MicrosoftOfficeExcel2007(12.0.6535.5002)SP2MSO和ActivePython2.6.5.14。我已经使用常量和整数尝试了所有三个XlSaveConflictResolution值。我没有尝试过不同版本的Excel。

下面是一段代码:

import win32com.client
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
wb = xl.Workbooks.Open(r"C:\somefile.csv")
wb.SaveAs(r"C:\somefile.xls", win32com.client.constants.xlWorkbookNormal, \
    None, None, False, False, win32com.client.constants.xlNoChange, \
    win32com.client.constants.xlLocalSessionChanges)

下面是微软关于Excel工作簿对象的SaveAs方法的规范:http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.saveas(VS.80).aspx

这可能是Excel2007中的一个新“功能”,还是我只是做错了什么?