Как написать список в одной ячейке Excel с помощью Python - PullRequest
1 голос
/ 17 апреля 2019

это мой список

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

при использовании этого кода

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


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

он хранит каждый токен списка в одной ячейке, но мне нужно хранить весь список в одной ячейке.в чем проблема?

Ответы [ 3 ]

2 голосов
/ 17 апреля 2019

Можете ли вы попробовать следующее:

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 голос
/ 17 апреля 2019

1) Вы пишете не файл Excel, а файл CSV (который Excel знает, как импортировать).

2) Вы пишете в файл CSV, как если бы это был текстовый файл, без учета семантики CSV. CSV означает «значения, разделенные запятыми» . Если он содержит текст ['a','b','c'], он будет интерпретирован как три столбца: ['a' и 'b' и 'c']. Вам нужно будет процитировать значение, чтобы сделать это правильно; в CSV по умолчанию используется двойная кавычка. Поэтому, если вы напишите "['a','b','c']", это будет импортировано в Excel как одна ячейка. Тем не менее,

3) Вы пишете файл CSV вручную, что означает, что очень легко получить неправильный формат (например, забудьте об экранировании чего-то, что должно быть экранировано). В общем, всякий раз, когда вы пишете файл с установленным форматом, стоит проверить, есть ли у формата библиотека, которая знает, как с ним обращаться. Python изначально знает, как писать файлы CSV с помощью модуля csv, и знает, как писать файлы Excel, используя пакеты, которые можно установить с помощью pip, например xlwt.

Вот как вы правильно пишете 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.

, плохо.

(я вижу, что другой ответчик уже предоставил вам решение для Excel, используя xlwt.)

1 голос
/ 17 апреля 2019

Использование join():

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

ВЫХОД :

enter image description here

РЕДАКТИРОВАТЬ :

Использование repr():

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

ВЫХОД :

out

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...