簡體   English   中英

如何使用python在一個Excel單元格中編寫列表

[英]How to write a list in one excel cell using python

這是我的清單

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

使用此代碼時

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


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

它將列表的每個令牌存儲在一個單元格中,但我需要將整個列表存儲在一個單元格中。問題出在哪里?

您可以嘗試以下方法:

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') 

輸出:

在此處輸入圖片說明

使用join()

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

輸出

在此處輸入圖片說明

編輯

使用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

輸出

出

1)您不是在編寫Excel文件,而是在編寫CSV文件(Excel知道如何導入)。

2)您在寫CSV文件時就好像它是一個文本文件一樣,沒有尊重CSV的語義。 CSV表示“逗號分隔的值” 如果包含文本['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特定的解決方案。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM