我想改进我的代码,取而代之:
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("WS")
header = [u'Nome da estação',u'Altitude',u'Latitude',u'Longitude']
column =0
for h in header:
sheet.write(0, column, h)
column += 1
对于某些代码直接使用数组头写入整行。有什么想法吗?
答案 0 :(得分:2)
将数据作为行单位写入不太可能获得任何实际改进,因为Excel会以单向方式单独存储单元格。这可能就是xlwt
没有记录这种方法的原因。
您可以使用enumerate:
将代码缩减几行workbook = xlwt.Workbook()
sheet = workbook.add_sheet("WS")
header = [u'Nome da estação',u'Altitude',u'Latitude',u'Longitude']
for column, heading in enumerate(header):
sheet.write(0, column, heading)
如果您发现自己经常这样做,请编写一个小实用程序方法:
def write_header(header, row=0, start_col=0):
for column, heading in enumerate(header, start_col):
sheet.write(row, column, heading)
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("WS")
write_header([u'Nome da estação',u'Altitude',u'Latitude',u'Longitude'])
如果您需要,可以使用其他参数在电子表格中设置标题的左上角。默认值应涵盖99%的用例。
答案 1 :(得分:0)
只有sheet.write()
,它是为row_index, column_index
写的。
如果您担心速度或优化,只需像其他任何编程流程一样专注于优化for
循环。
workbook.save()
仅在最后一次需要-因此文件I / O仍然只发生一次。