使用openpyxl写入Excel时,如何将日志日期转为可识别的日期格式?
解决Excel中日期被识别为文本的问题
核心问题原因
你只设置了单元格的数字格式,但写入的内容本身还是字符串类型,Excel不会自动把字符串转成日期格式——必须先把提取到的日期字符串转换成Python的datetime对象,再写入单元格。
具体解决步骤
- 将日期字符串转为datetime对象
用datetime.strptime匹配日志里的日期格式完成转换,示例代码:from datetime import datetime # 提取日志中的日期字符串 date_str = contents[12:] # 替换为你日志实际的日期格式(比如"%Y-%m-%d %H:%M:%S"),必须和字符串格式完全匹配 date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") - 写入单元格并设置格式
将转换后的datetime对象写入单元格,再设置日期格式:cell = page.cell(line, 2) cell.value = date_obj # 可直接用可读性更高的格式字符串,或用你之前的代码'22'对应默认日期时间格式 cell.number_format = 'yyyy-mm-dd hh:mm:ss' # 也可以保留:cell.number_format = '22'
额外排查点
- 确保日期格式字符串和日志中的格式完全一致,比如日志是
2024/05/20,格式就要写成"%Y/%m/%d",不匹配会触发转换报错。 - 如果写入后仍显示为文本,可选中单元格按
Ctrl+Shift+#手动触发格式识别,验证是否为格式设置问题。
内容的提问来源于stack exchange,提问作者Alberto Oliveira
相关产品推荐
相关产品推荐

