Why do you need to do this with python? Why not output the SQL data as a .cvs and open that file in Excel. The user can then adjust column widths as he likes. If it has to be done programatically, you might want to start your journey here: http://www.python-excel.org/ Best regards, Martin