我想改进我的代码,取而代之:
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
对于某些代码,直接使用数组头写入整行。任何的想法?
将数据作为行单位写入不太可能获得任何实际改进,因为Excel以单向方式单独存储单元格。这可能就是为什么xlwt
没有记录这种方法的原因。
您可以使用枚举将代码减少几行:
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%的用例。
只有sheet.write()
,为row_index, column_index
写道。
如果你担心速度或优化,只需专注于优化for
循环,就像你对任何其他编程流程一样。
workbook.save()
最后只需要一次 - 因此文件I / O仍然只发生一次。