Python writing (xlwt) to an existing Excel Sheet, drops charts and formatting
Question: Am using python to automate some tasks and ultimately write to an existing
spreadsheet. Am using the xlwt, xlrd and xlutils modules.

So the way I set it up is to open the file, make a copy, write to it and then
save it back to the same file. When I do the last step, all excel formatting
such as comments and charts are dropped. Is there a way around that? I think
it has something to do with excel objects.

Thank you

Sample code

    
    
    import xlwt
    import os
    import xlrd, xlutils
    from xlrd import open_workbook
    from xlutils.copy import copy
    
    style1 = xlwt.easyxf('font: name Calibri, color-index black, bold off;   alignment : horizontal center', num_format_str ='###0')
    
    script_dir = os.path.dirname('_file_')
    Scn1 = os.path.join(script_dir, "\sample\Outlet.OUT")
    
    WSM_1V = []
    infile = open (Scn1, "r")
    for line in infile.readlines(): 
    WSM_1V.append(line [-10:-1]) 
    infile.close()
    
    Existing_xls = xlrd.open_workbook(r'\test\test2.xls', formatting_info=True, on_demand=True)
    wb = xlutils.copy.copy(Existing_xls)
    ws = wb.get_sheet(10)
    
    for i,e in enumerate(WSM_1V,1):
       ws.write (i,0, float(e),style1)
    
    
    wb.save('test2.xls')
    


Answer: Could you do this with win32com?

    
    
    from win32com import client
    
    ...
    
    xl = client.Dispatch("Excel.Application")
    wb = xl.Workbooks.Open(r'\test\test2.xls')
    ws = wb.Worksheets[10]
    
    for i,e in enumerate(WSM_1V,1):
       ws.Cells[i][0].Value = float(e)
    
    
    wb.save
    wb.Close()
    xl.Quit()
    xl = None
    

