使用xlxs编写器模块将列表中的数据写入excel表格中的列

我有两个列表定义为:

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

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

在这里输入图像说明

我的代码如此之远:

 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 

所以每个列表都应该附加到每一列。

你可以尝试像这样的pandas:

 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) 

使用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) 

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() 

输出:

在这里输入图像说明

注意:示例代码中的文件扩展名中存在拼写错误。 Excel中有一个正确的扩展名是很重要的。