python使用openpyxl读取日期并修改excel

python使用openpyxl读取日期并修改excelimportdateti worksheet worksheetimp 读取 excel 表格中的日期 defxldate as datetime xldate datemode 0 ifdatemodeno 0 1 raiseExcepti datemode ifxldate 0 00 returndateti

import datetime import openpyxl from openpyxl.worksheet.worksheet import Worksheet # 读取excel表格中的日期 def xldate_as_datetime(xldate, datemode=0): if datemode not in (0, 1): raise Exception(datemode) if xldate == 0.00: return datetime.time(0, 0, 0) if xldate < 0.00: raise Exception(xldate) xldays = int(xldate) frac = xldate - xldays seconds = int(round(frac * 86400.0)) assert 0 <= seconds <= 86400 if seconds == 86400: seconds = 0 xldays += 1 # if xldays >= _XLDAYS_TOO_LARGE[datemode]: # raise XLDateTooLarge(xldate) if xldays == 0: # second = seconds % 60; minutes = seconds // 60 minutes, second = divmod(seconds, 60) # minute = minutes % 60; hour = minutes // 60 hour, minute = divmod(minutes, 60) return datetime.time(hour, minute, second) if xldays < 61 and datemode == 0: raise Exception(xldate) return ( datetime.datetime.fromordinal(xldays +  + 1462 * datemode) + datetime.timedelta(seconds=seconds) ) if __name__ == '__main__': # 读取excel workbook = openpyxl.load_workbook("D:\pythonwork\mindscrapy\朱志文.xlsx") # 获取工作簿 sheet: Worksheet = workbook['Sheet1'] # 获取S列 sl = sheet['S'] temp = None for s in sl: value = s.value if value is not None: # 私有方法-数字转成日期 t = xldate_as_datetime(value) # 去掉时间,保留日期 as_datetime = str(t)[0:10] # 重新赋值 s.value = as_datetime # 修改临时值 temp = as_datetime else: # 如果是空的,采用上一个值 s.value = temp # 保存为新的excel workbook.save('D:\pythonwork\mindscrapy\朱志文00.xlsx') 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209027.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:13
下一篇 2026年3月19日 上午10:13


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号