作者eaden (evenrain)
看板Python
標題[問題] openpyxl 寫 XLSX 檔
時間Wed Nov 7 10:36:06 2012
不知道有沒有人對這個套件熟悉的,我遇到一個很困擾的問題,
程式碼請參考
http://pastie.org/5338051
在 6~9 行我先寫了 01:02:03 這樣的字串在 (0,0) 這個 cell,
並將該 cell 設為字串格式,然後存檔。
如果後面幾行 mark 起來,打開剛剛產生的 xlsx 檔,看起來資料是正常的
(不過儲存格的格式還是通用)
接著在第 11~14 行,我開啟了剛剛存的 xlsx 檔,並在 (0,1) 寫了 04:05:06,
一樣設成字串格式並存檔。
這時候打開 xlsx 檔,會發現 (0,0) 這個 cell 的儲存格格式
被自動轉成自訂的 hh:mm 格式....orz
我試過執行 6~9 之後打開 excel,然後把所有儲存格轉成文字格式,
再執行 11~14 ,結果是 (0,0) 變成 0.04309....
也就是 01:02:03 轉成自訂的 hh:mm 再轉成文字這樣...
請問有什麼方法可以不要讓 excel 自己轉格式或是強制儲存格的格式嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.190.212
→ kilfu0701:應該是這個套件 把檔案讀回去的值 type放錯了 11/07 16:43
→ kilfu0701:試看看把 /reader/worksheet.py 的138行附近的 11/07 16:46
→ kilfu0701:ws.cell(coordinate).value = value 換成 11/07 16:47
→ kilfu0701:ws.cell(coordinate).set_value_explicit(value=value, 11/07 16:47
→ kilfu0701: data_type=data_type) 11/07 16:47
謝謝,改成這樣就可以了 (大心~)
→ Catbert:寫資料前要先設定"儲存格"格式 .NumberFormat = "@" 11/07 17:09
※ 編輯: eaden 來自: 122.116.190.212 (11/08 11:12)