xlrd,python中的xlwt(如何复制整行)

理想情况下,我从另一个Excel工作表复制整个行。 所以,而不是显示代码,我的问题是从列表中的那一行开始,我现在怎么把它放在另一个Excel工作表中? 我希望它看起来完全一样。 目标:采取任何一种数据格式,并把它们放在例如第1行的空白excel工作表中。我希望这是快速的,因为我打算将其扩展到10,000行。

数据可以是任何格式:

data = [number:6842.0, xldate:41771.0, xldate:0.005555555555555556, text:u'Hello World'] data = [6842.0, 41771.0, 0.005555555555555556, u'Hello World'] 

我的代码:

 import xlwt wb = xlwt.Workbook() data = [6842.0, 41771.0, 0.005555555555555556, u'Hello World'] #either format sheet1 = wb.add_sheet("MyData") sheet1.write(1,0,data) wb.save('C:\\Python27\\helloworld.xls') 

这是我如何从Excel文件抓取我的数据:

 from xlrd import * import xlwt book = open_workbook(filename= 'C:\Users\ssheikh\Desktop\CopyFile.xls') sh = book.sheet_by_index(0) workbook = xlwt.Workbook() sheet = workbook.add_sheet("MyData") b = xldate.xldate_from_date_tuple((2014,5,12), 0) c = xldate.xldate_from_date_tuple((2014,5,13), 0) mylist = [] listc = [] listd = [] for i in xrange(0,sh.nrows): if sh.cell_value(rowx=i, colx =1) == b: mylist.append(i) listd.append(sh.row_values(i)) print 'the number', b ,'was found in row=', i, 'and column =0' if sh.cell_value(rowx=i,colx =1) == c: listc.append(i) listd.append(sh.row(i)) #mylist[0] #upper limit of my rows #listc[-1] #lower limit of my rows listd # this has all of my rows that i want to put in a new excel file 

xlwt中没有看到任何write_row方法,就像在xlrd中row_values 一样 。 如果需要的话,只有sheet.writewrite_rich_text的Worksheet对象的write_rich_text

 for row_index, row in enumerate(listd): for col_index, cell_value in enumerate(row): sheet.write(row_index, col_index, cell_value) workbook.save("myData.xls") 

如果有特殊的样式,可以使用write的可选style参数。