Although its use is deprecated nowadays, you can use from win32com.client module which contains "dispatch". It preserves formatting. Example :
from win32com.client import Dispatch
xlApp = Dispatch("Excel.Application")
xlApp.Visible=1
book = xlApp.Workbooks.Open("FileName")
sheet1 = book.Worksheets(1)
sheet1.Cells(1,1).Value="ABC"