Я использую COM-объект Excel.Application из программы 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(VS.80).aspx
Может ли это быть новой "функцией" в Excel 2007, или я просто сделал что-то не так?