如何将不同大小的列表从python导出到excel

时间:2015-08-13 01:54:58

标签: python excel export

我已经阅读了Export a Python List to ExcelHow to export user inputs (from python) to excel worksheet,但不同的是我的列表有多种尺寸。我的意思是我的名单是这样的:

List=[[list1],[list2],...,[list10]]

list1,list2,...,list10包含3个float46格式的数字。例如:

list1=[1.34543324545676,2.4354356645454,2.786434355455]
list2=[3.33434342343423,6.6566665655655,7.343545454545]

...

list10=[3.6565656565465,7.45454536565656,7.56565656565]

我想将List导出到 list1 位于第一列的Excel文件中, list2 位于第二列,..., list10 在第十列。

2 个答案:

答案 0 :(得分:2)

如果你可以使用csv模块写入csv,然后在excel中打开它,那么你可以使用csv模块和zip()来写出来您的列表列表为列。示例 -

import csv
with open('<excel file>','w') as f:
    writer = csv.writer(f)
    #writer.writerow([<header row>]) #uncomment this and put header, if you want header row , if not leave it commented.
    for x in zip(*list_of_lists):
        writer.writerow(x)

*list_of_list解包列表并将每个内部列表作为单独的参数发送到zip(),zip()组合每个索引的每个列表,因此zip()的第一个列表输出是第0个所有列表的索引等等。所以这基本上转换了列表列表。

示例/演示 -

>>> import csv
>>> ll = [[1,2,3],[3,4,5],[4,2,1]]
>>> with open('a.csv','w') as f:
...     writer = csv.writer(f)
...     for x in zip(*ll):
...         writer.writerow(x)
...

a.csv中的输出是 -

1,3,4

2,4,2

3,5,1

我认为如果你愿意,也可以为其他excel库做类似的事情(使用zip())。

答案 1 :(得分:0)

使用XlsxWriter模块可以自动处理不同的列表长度,这是一种方法:

import xlsxwriter

workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()

list1 = [1.34543324545676, 2.4354356645454, 2.786434355455]
list2 = [3.33434342343423, 6.6566665655655, 7.343545454545]
list3 = [3.6565656565465,  7.45454536565656, 7.56565656565]         

List  = [list1, list2, list3]

row_num = 0

for col_num, data in enumerate(List):
    worksheet.write_column(row_num, col_num, data)

workbook.close()

输出:

enter image description here