如何判断Excel单元格是否为日期

6

如果我执行:

print sh.cell(1,col)

I get:

text:u''
text:u''
text:u'eng'
text:u''
xldate:41450.0
number:11.0
number:30.0
text:u'Reality TV'

然而,如果我执行:print type(sh.cell(1,col)),我将得到:
<class 'xlrd.sheet.Cell'>

适用于所有人。

如何从xlrd获取“文本”、“xldate”或“数字”——即单元格类型?

2个回答

12
你需要的是 Cell 对象的 ctype 属性。例如:
sh.cell(1,col).ctype

这是一个表示单元格类型的整数。您需要将其与xlrd.XL_CELL_DATE进行比较; 请参见此处的文档


或者将其与 xlrd.XL_CELL_DATE 进行比较,因为这就是 XL_CELL_* 常量的用途。 - Jon Clements
太好了,谢谢你提供的信息和该部分的文档链接。 - David542

1

我用了一种hack的方式来做这件事:

if str(sh.cell(1,col)).split(':')[0] == 'xldate':

那是一种可怕的方式 - 看看 @Kindall 的答案,了解如何正确地执行此操作... - Jon Clements

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接