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
