使用xlxs writer模块将列表中的数据写入excel表中的列

时间:2017-05-08 16:46:32

标签: python excel list xlsxwriter

我有两个列表定义为:

Column1=[1,2,3,4]
Column2=[5,6,7,8]

我想将Column1列表附加到Excel工作表的第一列,将Column2列表附加到Excel工作表的第二列。 Excel表格如下所示:

enter image description here

我的代码:

from xlxswriter import*
workbook=Workbook('Ecl.xlxs')
Report_Sheet=workbook.add_worksheet()
for row_ind,row_value in enumerate(Column1):
    print row_ind,row_value
    Report_Sheet.write('A',Column1)#i want something similar to this

因此每个列表都应附加到每一列。

3 个答案:

答案 0 :(得分:3)

你可以尝试像这样的熊猫:

import pandas as pd
df = pd.DataFrame.from_dict({'Column1':[1,2,3,4],'Column2':[5,6,7,8]})
df.to_excel('test.xlsx', header=True, index=False)

test.xlsx将与您需要的一样。

更新

import pandas as pd
Column1 = [1,2,3,4]
Column2 = [5,6,7,8]
df = pd.DataFrame.from_dict({'Column1':Column1,'Column2':Column2})
df.to_excel('test.xlsx', header=True, index=False)

答案 1 :(得分:2)

使用zip()enumerate()可以获得迭代数据所需的值,如:

<强>代码:

Column1 = [1, 2, 3, 4]
Column2 = [5, 6, 7, 8]

from xlsxwriter import Workbook
workbook = Workbook('Ecl.xlsx')
Report_Sheet=workbook.add_worksheet()
Report_Sheet.write(0, 0, 'Column1')
Report_Sheet.write(0, 1, 'Column2')

for row_ind, row_value in enumerate(zip(Column1, Column2)):
    print row_ind, row_value
    for col_ind, col_value in enumerate(row_value):
        Report_Sheet.write(row_ind + 1, col_ind, col_value)

答案 2 :(得分:2)

XlsxWriter使用write_row()write_column()方法在一次调用中编写数据列表。所以你可以写下你的列数据:

from xlsxwriter import Workbook

Column1 = [1, 2, 3, 4]
Column2 = [5, 6, 7, 8]

workbook = Workbook('Ecl.xlsx')
Report_Sheet = workbook.add_worksheet()

# Write the column headers if required.
Report_Sheet.write(0, 0, 'Column1')
Report_Sheet.write(0, 1, 'Column2')

# Write the column data.
Report_Sheet.write_column(1, 0, Column1)
Report_Sheet.write_column(1, 1, Column2)

workbook.close()

输出:

enter image description here

注意:示例代码中的文件扩展名中存在拼写错误。在Excel中使用正确的扩展名非常重要。