分享

Python操作Excel的插入删除行列,如何自动化?

 网摘文苑 2022-12-17 发布于新疆

带你走进 @ 机器人时代

Discover 点击上面蓝色文字关注我们

文章图片1


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')

我们来对比一下效果,执行前:

文章图片2

执行后:

文章图片3

如果你只是想在某一处插入1行或2行空白行,可以使用以下代码:

from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')ws = wk['工资表']ws.insert_rows(8, 2)wk.save('工资表1.xlsx')


这里我们指定了在第8行插入2行空白行,来看看效果:

文章图片4

成功了!这是对表格添加行的操作,列的操作也是一样的道理:

from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')ws = wk ['工资表']#插入空白列ws.insert_cols(5, 1)wk .save('工资表1.xlsx')


上述代码表示在第5列处插入一个空白列,我们来看看效果:

文章图片5

如果我们希望删除指定的行,也是很简单的事情,我们来看看:

文章图片6

红色框内的数据是我们想删除的,看看代码:

from openpyxl import load_workbookwk = load_workbook('工资表.xlsx')wt = wk['工资表']#删除第五行wt.delete_rows(5, 1)wk.save('工资表1.xlsx')

运行后,我们看看:

文章图片7

第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()

运行后:

文章图片8

这样,我们就把新员工刘备的工资追加到最后一行了。那么有一张销售工作表,我们希望根据利润情况,追加一列数据,并设置为等级:

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)

我们来看看运行后的效果:

文章图片9

根据利润情况,写入相应的等级。估计你一定没有看懂,没关系,我们将在下一期的文章里剖析一下。

继续坚持学习,每天都能进步一点!!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多