具体需求看这里
先描述一下问题吧,我爸工作遇到一个问题,需求如下:
意思是只保留前面的年月日,那么扩展到其他问题就是如何批量地删除每一行具有规律的部分内容?
这里我不太熟悉excel图形化的操作,通过查阅各种博客知道了快捷键ctrl+H可以调出excel的替换功能,并且在里面输入字符可以将其替换成空,当然也可以在选项里面选择指定的格式(不过我确实没弄出来,只弄成了以下的结果)
看到效果了吗,只删了“至”,emmm熟悉execl的大佬应该能删后面的,但是我不行,所以我只能用python代码来批量删除
借用python的力量
不多说废话直接上代码
import openpyxlfrom datetime import datetime# 打开Excel文件wb = openpyxl.load_workbook('D:\Pycharm_project\de.xlsx')#文件名因人而异# 选择工作表sheet = wb['Sheet1'] #如果有多个工作表就写一个列表添加一个循环遍历# 遍历每一行for i, row in enumerate(sheet.iter_rows(min_row=2, values_only=True), 2):#之所以从第二行开始是因为第一行可能是一些变量名什么的,具体情况具体分析# 如果第一列的值符合要求,则将第一列的值转换为datetime对象,并修改为年-月-日的格式if isinstance(row[0], str) and '至' in row[0]: date_range = row[0].split('至')#从"至"开始分割,后面的内容就不要了start_date = datetime.strptime(date_range[0], '%Y-%m-%d')sheet.cell(row=i, column=1).value = start_date.strftime('%Y-%m-%d')# 保存修改wb.save('D:\Pycharm_project\de.xlsx')
最重要的就是for i,row循环里面的内容,根据实际任务进行更改,思路都是一样的,只不过这里是年月日而已。
那就给大家看一下结果吧: