将Python列表导出到Excel

我想通过Win32COM客户端导出一个列表到excel,我已经在标题处导入了。 我创build的对象编码如下,但我似乎无法得到它将每个值导出到电子表格自己的行。 如果我能得到一个好的指针(除了放弃python !!:D),我将不胜感激。

class XcelExport(): def excel(self): app = 'Excel' xl = win32.gencache.EnsureDispatch('%s.Application' % app) ss = xl.Workbooks.Open(r'C:\MyFile.xls') sh = ss.ActiveSheet xl.Visible = True sleep(.1) sh.Cells(1,1).Value = 'Export-to-%s : Items' % app sleep(.1) for i in EventTableRFT: sh.Range("A").Value = i sh.Cells(i+2,1).Value = "End of the List!" xprt = XcelExport() xprt.excel() 

既然你似乎喜欢我的回答/评论,这里是一个正确的答案:

Python Excel几乎涵盖了你所需要的一切。 如果你想要更多的整合,但似乎有限,有IronSpread 。 XLRD和XLWT是优秀的软件包,但不支持* .xlsx文件。 IronSpread仅适用于Windows,只支持'07和'10版本的Excel。 每个都有它的警告。 最后,你可以同时使用(编辑为* .xlsx,然后保存为* .xls(我有一个谁有速度问题与大* .xls文件,但我的脚本写了200MB的文字从那东西在1分钟。))。

哦,我肯定会阅读(浏​​览)有趣的function文件,如获取单元格types等xlrd / xlwt。 这是值得的,如果只是因为它很短,并会节省您的实验学习曲线。

xlwt的超级简短例子:

 import xlwt from tempfile import TemporaryFile book = xlwt.Workbook() sheet1 = book.add_sheet('sheet1') supersecretdata = [34,123,4,1234,12,34,12,41,234,123,4,123,1,45123,5,43,61,3,56] for i,e in enumerate(supersecretdata): sheet1.write(i,1,e) name = "random.xls" book.save(name) book.save(TemporaryFile()) 

xlrd的超级简短例子:

 import xlrd from xlrd import open_workbook book = open_workbook('random.xls') sheet1 = book.sheet_by_index(0) data = [] for i in xrange(sheet1.nrows): data.append(sheet1.cell(i,1).value) 

您在Range中缺less单元格行号,并且需要在每次循环迭代后增加单元格行。

 sh.Range("A1").Offset(0,x).Value = i 

这个改变应该起作用。

 class XcelExport(): def excel(self): app = 'Excel' xl = win32.gencache.EnsureDispatch('%s.Application' % app) ss = xl.Workbooks.Open(r'C:\MyFile.xls') sh = ss.ActiveSheet xl.Visible = True sleep(.1) sh.Cells(1,1).Value = 'Export-to-%s : Items' % app sleep(.1) x=0 for i in EventTableRFT: sh.Range("A1").Offset(0,x).Value = i #You need to increment the cell row x+=1 sh.Cells(i+2,1).Value = "End of the List!" xprt = XcelExport() xprt.excel()