使用 Python 将列表写入 Excel 中的单元格
Write a list to a cell in Excel using Python
我想写一个列表列表:k = [['1','a'],['2','b'],['3','c']]
- 到 Python excel sheet.
中的一个单元格
我的代码:
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 中是否有任何其他模块可以促进此操作?
您可以通过将列表的列表转换为字符串来解决这个问题。例如
>>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']]
希望这能回答您的问题。
您可以使用内置函数 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 可能更好。
我想写一个列表列表:k = [['1','a'],['2','b'],['3','c']]
- 到 Python excel sheet.
我的代码:
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 中是否有任何其他模块可以促进此操作?
您可以通过将列表的列表转换为字符串来解决这个问题。例如
>>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']]
希望这能回答您的问题。
您可以使用内置函数 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 可能更好。