使用Python将列表写入Excel中的单元格

时间:2019-02-28 06:47:54

标签: python excel list xlsxwriter

我想将列表列表k = [['1','a'],['2','b'],['3','c']]-写到Python excel工作表中的单元格中。

我的代码:

workbook = xlsxwriter.Workbook('names.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write('A1', 'Generic Name')

我尝试过: worksheet.write_row('B1', allmajor) 导致列表k的内容被写入单独的单元格(B1,C1,D1 ..)。

这样做:worksheet.write('B1', ','.join(k))导致单元格B1的子休具有类似-'1','a','2','b','3','c'的字符串

有什么方法可以将列表写入单元格,以使单元格B1看起来像[['1','a'],['2','b'],['3','c']]? Python中还有其他模块可以帮助实现这一点吗?

2 个答案:

答案 0 :(得分:1)

您可以通过将列表列表转换为字符串来解决此问题。例如

>>import pandas as pd
>>list1=[['1','a'],['2','b'],['3','c']]
>>list2=[['4','a'],['5','b'],['6','c']]
>>df=pd.DataFrame({'a':[str(list1), str(list2)]]})

现在,当您以逗号分隔的格式保存它时,每个元素将被视为一个字符串。从文件读回时,可以使用ast将其转换回列表列表。

>>import ast
>>[ast.literal_eval(i) for i in df['a']]

希望这能回答您的问题。

答案 1 :(得分:1)

您可以使用内置函数repr来提供列表对象的字符串表示形式:

worksheet.write('B1', repr(k))

在python提示符下,您可以看到它的工作方式:

>>> k = [['1','a'],['2','b'],['3','c']]
>>> k
[['1', 'a'], ['2', 'b'], ['3', 'c']]
>>> repr(k)
"[['1', 'a'], ['2', 'b'], ['3', 'c']]"
>>> print(repr(k))
[['1', 'a'], ['2', 'b'], ['3', 'c']]

对于简单的列表结构,您可以将其像str(k)一样转换为字符串,但是在这种情况下,repr可能更好。

相关问题