如何使用python在一个Excel单元格中编写列表

时间:2019-04-17 07:15:02

标签: python excel python-3.x

这是我的清单

list=['a','b','c']

使用此代码时

with open('commentafterlink.csv', 'w') as f:


     f.write("%s\n" % list)

它将列表的每个令牌存储在一个单元格中,但我需要将整个列表存储在一个单元格中。问题出在哪里?

3 个答案:

答案 0 :(得分:2)

您可以尝试以下方法吗?

import xlwt 
from xlwt import Workbook 
# Workbook is created 
wb = Workbook() 

# add_sheet is used to create sheet. 
sheet1 = wb.add_sheet('Sheet 1') 
# sheet1.write(1, 0, ' '.join(list)) 
# if you want the output to be ['a','b','c']
sheet1.write(1, 0, str(list)) 
wb.save('xlwt example.xls') 

输出:

enter image description here

答案 1 :(得分:1)

使用enter image description here

lst=['a','b','c']
with open('commentafterlink.csv', 'w') as f:
 f.write("%s\n" % "".join(lst))

输出

repr()

编辑

使用out

import xlsxwriter

lst=['a','b','c']                                        # avoid using list keyword   
workbook = xlsxwriter.Workbook('commentafterlink.xlsx')  # create/read the file
worksheet = workbook.add_worksheet()                     # adding a worksheet
worksheet.write('A1', repr(lst))                         # write repr(lst) to cell A1
workbook.close()                                         # close the file

输出

output on my website

答案 2 :(得分:1)

1)您不是在编写Excel文件,而是在编写CSV文件(Excel知道如何导入)。

2)您在写CSV文件时就好像它是一个文本文件一样,没有尊重CSV的语义。 CSV表示"comma-separated values"。如果包含文本['a','b','c'],它将被解释为三列:['a''b''c']。您需要引用该值才能正确执行该操作。 CSV中的默认引号是双引号。因此,如果您编写"['a','b','c']",它将作为一个单元格导入Excel。但是,

3)您正在手工编写CSV文件,这意味着很容易弄错格式(例如,忘记转义需要转义的内容)。通常,每当您以已建立的格式编写文件时,都值得检查该格式是否具有知道如何处理该文件的库。 Python本机知道如何使用csv模块写入CSV文件,并且知道如何使用可以使用pip安装的软件包(例如xlwt)来写入Excel文件。

以下是您正确编写CSV文件的方式:

my_list = ['a', 'b', 'c']

import csv
with open('commentafterlink.csv', 'w') as w:
    writer = csv.writer(w)
    writer.writerow([str(my_list)])

注意:覆盖Python的内置变量(例如list)是一件很糟糕的事情。

(我看到另一个回答者已经使用xlwt为您提供了Excel特定的解决方案。)