作者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
1F:→ kilfu0701:应该是这个套件 把档案读回去的值 type放错了 11/07 16:43
2F:→ kilfu0701:试看看把 /reader/worksheet.py 的138行附近的 11/07 16:46
3F:→ kilfu0701:ws.cell(coordinate).value = value 换成 11/07 16:47
4F:→ kilfu0701:ws.cell(coordinate).set_value_explicit(value=value, 11/07 16:47
5F:→ kilfu0701: data_type=data_type) 11/07 16:47
谢谢,改成这样就可以了 (大心~)
6F:→ Catbert:写资料前要先设定"储存格"格式 .NumberFormat = "@" 11/07 17:09
※ 编辑: eaden 来自: 122.116.190.212 (11/08 11:12)