我可以禁用 openpyxl 自动将字符串解析为日期时间吗?
Posted
技术标签:
【中文标题】我可以禁用 openpyxl 自动将字符串解析为日期时间吗?【英文标题】:Can I disable openpyxl from automatically parsing strings to datetime? 【发布时间】:2017-11-04 08:14:31 【问题描述】:我有简单的 excel 文件,其中包含各种 timstamp 格式的字符串。 openpyxl 中有一个内置功能可以自动将看起来像日期的内容转换为日期时间对象。
我的问题很简单,我如何才能将 raw 字符串作为用户插入到 excel 文件中,而无需 openpyxl
的干预。
我想使用一个函数自己尝试对datetime.strptime
的各种调用来进行我自己的格式测试。
加载excel是我这样完成的:
import openpyxl
ex = openpyxl.load_workbook('/path/to/file.xls')
worksheet = ex.active
如果需要遍历行,我正在使用worksheet.iter_rows
方法
【问题讨论】:
【参考方案1】:您的假设不正确:openpyxl 不会转换字符串,除非您通过设置guess_types=True
来要求它。 Excel 通过设置数字格式并在内部将它们转换为纪元为 1899-12-30 的序列,将值视为日期时间对象。
【讨论】:
我已经尝试过guess_type=False,所以我猜你提到的转换字符串的excel。任何想法如何获取excell用户编写的原始字符串?如果我转换为 csv,那么 csv 中的日期也会自动转换为日期时间? @JavaSa 如果它返回 python datetime 对象,为什么你不能在自己的代码中单独处理isinstance(cell.value, datetime.datetime)
和处理 if isinstance(cell.value, basestring)
?以上是关于我可以禁用 openpyxl 自动将字符串解析为日期时间吗?的主要内容,如果未能解决你的问题,请参考以下文章