Hi, I'm working on something with mysql and excel. I'm using python and win32com. All major function works, But I have two problems:
1. the output need to do "auto fit" to make it readable. I tried to call "xlApp.Columns.AutoFit=1" the whole program will crash, but without xlApp.Columns.AutoFit=1, everything just fine. 2. How do I set a rows format? I need to set row "F" to "Text", "o","p" to general, and "Q", "R", to currency. the data in mysql is stored as text. and it's looks like: 551423 107300.00 22415.90 22124.17 In excel, It will display: 107300 #it should be 107300.00 22415.9 #it should be 22415.90 Error Message when I use Columns.AutoFit=1: Traceback (most recent call last): File "C:\Documents and Settings\Desktop\python\5.1.07\vpi.py", line 317, in <module> root.mainloop() File "C:\Python25\lib\lib-tk\Tkinter.py", line 1023, in mainloop self.tk.mainloop(n) File "C:\Python25\lib\Pmw\Pmw_1_2\lib\PmwBase.py", line 1751, in __call__ _reporterror(self.func, args) File "C:\Python25\lib\Pmw\Pmw_1_2\lib\PmwBase.py", line 1777, in _reporterror msg = exc_type + ' Exception in Tk callback\n' TypeError: unsupported operand type(s) for +: 'type' and 'str' Python code : (this function is called by clicked on "Excel" button from main program) #Begin Function Generate_Excel# def generate_excel(desc): xlApp=Dispatch("Excel.Application") xlApp.Workbooks.Add() xlApp.Worksheets[0] header=['Company', 'Factory', 'PO Number', 'PO Date', 'Required Date', 'Item Number',\ 'Production Date', 'Actual ShipDate', 'Shipping Method', 'Cost', 'Quote', 'Order QTY', \ 'Item Cost', 'Item Quote', 'Pcs Shipped', 'Pcs UnShipped', 'UnShipped Cost', \ 'UnShipped Quote'] if desc==1: header.append('Description') column=1 for each in header: xlApp.ActiveSheet.Cells(1, column).Value=each column=column+1 conn=MySQLdb.connect(host='sql_server', user='t5sll9', passwd='5514dh6', db='app') curs=conn.cursor() curs.execute('call rr_shipping()') data=curs.fetchall() curs.close() conn.close() data_len=len(data)+1 if desc==0: range="A2:R"+str(data_len) if desc==1: range="A2:S"+str(data_len) xlApp.ActiveSheet.Range(range).Value=data #problem here, if I call Columns.AutoFit or ActiveSheet.Columns.AutoFit #the program will crush! #xlApp.Columns.AutoFit=1 #xlApp.ActiveSheet.Columns.AutoFit=1 xlApp.Visible=1 #End Function Generate_Excel# -- http://mail.python.org/mailman/listinfo/python-list