xlrd 读取 xls (excel)的日期、时间单元格的问题
这篇文章讲的是开发者在用 xlrd 读取传统 .xls 文件时,常会遇到一个令人困惑的坑:日期和时间格式的单元格被读出来后,并不是预期的可读字符串,而是一串看起来毫无意义的浮点数。作者从这个常见痛点切入,剖析了其根源——Excel 内部是将日期和时间以“序列号”的形式存储的,一个整数部分代表自1900年以来的天数,小数部分则代表一天中的时间比例。因此,直接用 xlrd 的 cell.value 取值,得到的只是这个原始的序列数。 文章的核心价值在于,它不仅解释了这个“为什么”,更给出了明确的“怎么办”。它详细介绍了如何利用 xlrd 自身的 xldate_as_tuple 函数,或者结合 Python 标准库的 datetime 模块,将这些浮点数准确地转换为可用的日期时间对象。对于时间单元格,文章也点明了其本质是小于1的浮点数,需要类似的方法进行转换。通过理解这个机制,开发者就能从容处理 xls 文件中各种格式的日期时间数据,避免在数据预处理阶段被这类问题卡住。