2012-10-18 35 views
3

這可能是一個簡單的辦法,但我似乎無法推測出來......寫入CSV - 字符串被識別爲日期在Excel

使用下面的代碼輸出在Python列表,以CSV:

w = csv.writer(file('filename.csv','wb')) 
w.writerows(mylist) 

一個列表中的項目是一個比值,因此它包含的值等'23/54' ,‘9/12’等Excel將識別一些這些值(例如9/12),爲的日期。解決這個問題的最簡單方法是什麼?

感謝

+0

問題出現在格式中 - Excel自動將識別規則應用於.csv文件,並且無法將其關閉。另請參閱http://stackoverflow.com/questions/137359/excel-csv-number-cell-format –

+0

嗯,也許作爲一種解決方法,我可以將比例列分成2列...即'9/12'變成2整數列爲9,12。 – ChrisArmstrong

回答

3

因爲csv是一個純文本格式,你不能告訴有關如何解釋數據的Excel什麼,我很害怕。

您必須生成實際的Excel文件(例如,使用xlwt,文檔和教程可在http://www.python-excel.org/上獲得)。

+0

同意。我懷疑它是否將Excel中的數據表示函數「解釋」並「顯示」爲日期。原始文件應該包含格式正確的數據,如預期的那樣 –

2

你可以這樣做:

# somelist contains data like '12/51','9/43' etc 
mylist = ["'" + val + "'" for val in somelist] 
w = csv.writer(open('filename.csv','wb')) 
for me in mylist: 
    w.writerow([me]) 

這將確保您的數據被寫入,因爲它是爲csv。

+1

其實你不需要明確地做到這一點,'csv.writer'有一個'quoting'標誌可以設置:http://docs.python.org/ 2/library/csv.html#csv.QUOTE_ALL – filmor

+0

cool!直到現在還不知道。謝謝! – richie

相關問題