Python и Excel: Перезапись существующего файла всегда запрашивает, несмотря на значение XlSaveConflictResolution

Я использую Excel. COM-объект приложения из программы Python, чтобы открыть файл CSV и сохранить его как рабочую книгу Excel. Если конечный файл уже существует, то мне предлагают с этим сообщением: "Файл, названный '...' уже, существует в этом месте. Вы хотите заменить его?" То сообщение подходит несмотря на то, что я установил значение XlSaveConflictResolution к xlLocalSessionChanges, который, как предполагается, автоматически перезаписывает изменения, не запрашивая - или таким образом, я думал.

Я использую Microsoft Office Excel 2007 (12.0.6535.5002) SP2 MSO и ActivePython 2.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)

И вот спецификация от Microsoft о методе SaveAs для объекта рабочей книги Excel: http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.saveas (По сравнению с 80) .aspx

Это могло быть новой "функцией" в Excel 2007, или я просто делал что-то не так?

6
задан Mike M. Lin 30 July 2010 в 17:29
поделиться