【问题标题】:Can I disable openpyxl from automatically parsing strings to datetime?我可以禁用 openpyxl 自动将字符串解析为日期时间吗?
【发布时间】: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 方法

【问题讨论】:

    标签: excel python-2.7 pandas openpyxl


    【解决方案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)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多