假设这里我们想把之前简单的1/11月日格式,更改为年月日的样式,中间加上分隔符/或-,就需要用"%x"或"%Y-%m-%d"来进行操作了 。注意这里的%加字母都是官方定义好的格式而已,我们用到时候进行拼接,传给函数就可以了 。
具体更多的拼接格式如下:
In [199]:import datetimeIn [209]:d=datetime.datetime(2019,1,11)In [203]:d.strftime("%x")Out[203]:'01/11/19'In [205]:d.strftime("%Y-%m-%d")Out[205]:'2019-01-11'研究完成后,我们编写函数 。
首先需要用m, d = cell.value.split('/')把之前简单的日期进行分割,得到m,代表月份和日期,然后用datetime进行转换,生成时间相关的对象day,注意里面的参数是数字,所以用int转换,最后把day进行格式化输出 。编写函数后,一定记得测试 。
In [218]:def handle_time(wb, sheetname):"""按列循环, 通过参数确认目标"""print(f'开始处理工作表:{sheetname}'.center(18, '-'))sheet = wb[sheetname]for col in sheet.iter_cols(max_col=1, min_row=2):# 找到时间的列, 第一列,从第二行开始for cell in col:print('修改前:', cell.value, end='')m, d = cell.value.split('/')day = datetime.datetime(2019, int(m), int(d))cell.value = https://www.isolves.com/it/cxkf/yy/Python/2021-12-16/day.strftime("%Y-%m-%d")print('修改后-》》',cell.value)In [220]:wb = load_data()handle_time(wb, '时间')save_as(wb)4.修复数字和符号接下来,处理数字和符号相关的操作 。加入我们之前的价格,很多是有小数点的,这时候还想保存两位小数,并加上人民币符号为前缀 。就需要新的一波研究了 。
有小数点,一是要保证位数,我们这里要求2位,二是要对多余的位数四舍五入 。可以有以下俩个方式完成,一个用Decimal一个用round,两个的区别是Decimal("0.00")指定位数后,会自动补0,而round遇到0就自动舍掉了 。而且round在四舍五入的计算中,还有点特殊 。具体可查看官方文档 。
我们这里用Decimal来完成函数内相关操作 。记得测试啊!
In [227]:from decimal import DecimalIn [240]:a = 3.1b=Decimal(a).quantize(Decimal("0.00"))print(b)3.10In [244]:round(a,2)# 位数自动省略0Out[244]:3.1In [247]:def handle_num(wb, sheetname):"""按列循环, 通过参数确认目标"""print(f'开始处理工作表:{sheetname}'.center(18, '-'))sheet = wb[sheetname]for col in sheet.iter_cols(min_col=3, max_col=3, min_row=2):# 找到时间的列, 第一列,从第二行开始for cell in col:print('修改前:', cell.value, end='')#cell.value = https://www.isolves.com/it/cxkf/yy/Python/2021-12-16/round(float(cell.value), 3)cell.value = '¥' + str(Decimal(cell.value).quantize(Decimal("0.00")))print('修改后-》》',cell.value)In [249]:wb = load_data()handle_num(wb, '数字符号')save_as(wb)最后文章对你有帮助的话,记得帮作者点点赞
接下来还会持续跟新有关Python的文章,点点关注不迷路 。
推荐阅读
- 披萨|由短到长夏日发型15款,好看时尚美美哒,赶快选一款吧
- 这也太全了吧! 计算机网络知识点全面总结
- 太变态了,这个Excel功能居然能自动合并表格
- 你的刘海代表什么性格,来测测吧
- 10分钟学会用Python轻松玩转Excel
- 三个月宝宝头后仰
- Excel 中那么多未排序的日期,如何自动标出下个月的所有日期?
- 不会吧,你还不会用RequestId看日志 ?
- 翡翠|文玩金刚菩提这些坑不会还有人在跳吧!别说还真有!
- 盘点CSV文件在Excel中打开后乱码问题的两种处理方法
