如何在数组中写入excel中的整行 - xlwt

时间:2017-04-30 22:31:20

标签: python excel xlwt

我想改进我的代码,取而代之:

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

对于某些代码直接使用数组头写入整行。有什么想法吗?

2 个答案:

答案 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仍然只发生一次。