带你走进 @ 机器人时代
Discover 点击上面蓝色文字,关注我们
Python 自动化操作单元格,每隔一行插入空白行,实现代码如下:
from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')ws = wk['工资表']#设置插入空白行的行数n = 1#获取最大行数last_n = ws.max_row#循环处理插入空白行for i in range(0, last_n): #插入空白行 ws.insert_rows(i * (n + 1) + 3, n)wk.save('工资表1.xlsx')
我们来对比一下效果,执行前:
执行后:
如果你只是想在某一处插入1行或2行空白行,可以使用以下代码:
from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')ws = wk['工资表']ws.insert_rows(8, 2)wk.save('工资表1.xlsx')
这里我们指定了在第8行插入2行空白行,来看看效果:
成功了!这是对表格添加行的操作,列的操作也是一样的道理:
from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')ws = wk ['工资表']#插入空白列ws.insert_cols(5, 1)wk .save('工资表1.xlsx')
上述代码表示在第5列处插入一个空白列,我们来看看效果:
如果我们希望删除指定的行,也是很简单的事情,我们来看看:
红色框内的数据是我们想删除的,看看代码:
from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')wt = wk['工资表']#删除第五行wt.delete_rows(5, 1)wk.save('工资表1.xlsx')
运行后,我们看看:
第5行赵**的记录被删除了!删除列的代码如下:
from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')wt = wk['工资表']#从第5列开始,删除两列wt.delete_cols(5, 2)wk.save('工资表1.xlsx')
大家可以自己测试一下,不过还有另外一个方法就是使用pandas的方法,代码如下:
import pandas as pddata = pd.read_excel('工资表.xlsx', sheet_name=0)data.drop(columns=['绩效工资', '社保扣款'], inplace=True)data.to_excel('工资表1.xlsx', sheet_name='工资表', index=False)
大家可以自行测试一下。下面我们看看如何在表格中追加一条数据:
import xlwings as xwapp = xw.App(visible=False, add_book=False)#设置要添加的数据n=['HS0009,刘备','¥2,200','¥1,200','¥2,000','¥400','¥100','¥4,900' ]#选定要操作的表格wk = app.books.open('工资表.xlsx')ws = wk.sheets['工资表']#读取表格数据data = ws.range('A1').expand('table')#获得表格数据条数num = data.shape[0]#追加记录ws.range(num + 1, 1).value = n#保存关闭wk.save()wk.close()app.quit()
运行后:
这样,我们就把新员工刘备的工资追加到最后一行了。那么有一张销售工作表,我们希望根据利润情况,追加一列数据,并设置为等级:
import pandas as pddata = pd.read_excel('销售表.xlsx', sheet_name=0)#获取利润列的数据max_data = data['利润'].max()#根据数据作出比较level = [0, 5000, 10000, max_data]level_names = ['差', '良', '优']#添加一列数据,根据上面的结果,写入数据data['等级'] = pd.cut(data['利润'], level, labels=level_names)#写入Excel表格data.to_excel('销售表1.xlsx', sheet_name='总表', index=False)
我们来看看运行后的效果:
根据利润情况,写入相应的等级。估计你一定没有看懂,没关系,我们将在下一期的文章里剖析一下。
继续坚持学习,每天都能进步一点!!!
联系客服