Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >盘点一个Python自动化办公实战实现数据汇总填充(方法三)

盘点一个Python自动化办公实战实现数据汇总填充(方法三)

作者头像
前端皮皮
发布于 2023-10-08 07:26:30
发布于 2023-10-08 07:26:30
17700
代码可运行
举报
运行总次数:0
代码可运行

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python自动化办公的问题,一起来看看吧。

下图是他的原始数据和他想得到的目标数据,如下所示:

需要在标黄的两行里边进行相关操作。

二、实现过程

上一篇文章我们已经优化过一次了,这一篇文章我们小小的进行优化下,这一篇文章我们一起来看看吧!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import openpyxl


def fill_table(bug_name, sheet, row_number):
    # 初始化IP地址列表,已提供误报证明ip
    ip_list1 = []
    # 初始化IP地址列表,已提供无法整改证明ip
    ip_list2 = []
    # 初始化IP地址列表,没有误报和无法整改证明的IP
    ip_list3 = []

    is_provided_misreport_list = []
    is_provided_fixed_prove_list = []

    # 遍历每一行
    for row in range(2, sheet.max_row + 1):
        system_name = sheet.cell(row=row, column=1).value
        vulnerability_name = sheet.cell(row=row, column=2).value
        ip = sheet.cell(row=row, column=3).value
        is_provided_misreport = sheet.cell(row=row, column=4).value
        is_provided_fixed_prove = sheet.cell(row=row, column=5).value

        # 判断漏洞名称和是否提供误报证明,针对OpenSSH 'schnorr.c'远程内存破坏漏洞(CVE-2014-1692)漏洞
        if vulnerability_name == bug_name and is_provided_misreport == '是':
            is_provided_misreport_list.append(is_provided_misreport)
            ip_list1.append(ip)

        if vulnerability_name == bug_name and is_provided_fixed_prove == '是':
            is_provided_fixed_prove_list.append(is_provided_fixed_prove)
            ip_list2.append(ip)

        if vulnerability_name == bug_name and is_provided_misreport == '否' and is_provided_fixed_prove == '否':
            ip_list3.append(ip)

    # 填写C15单元格
    if '是' in is_provided_misreport_list:
        sheet.cell(row=row_number, column=3).value = '是'
    else:
        sheet.cell(row=row_number, column=3).value = '否'

    # 填写D15单元格
    sheet.cell(row=row_number, column=4).value = ','.join(ip_list1)

    # 填写E15单元格
    if '是' in is_provided_fixed_prove_list:
        sheet.cell(row=row_number, column=5).value = '是'
    else:
        sheet.cell(row=row_number, column=5).value = '否'

    # 填写F15单元格
    sheet.cell(row=row_number, column=6).value = ','.join(ip_list2)

    # 填写G15单元格
    if not ip_list3:
        sheet.cell(row=row_number, column=7).value = "无"
    else:
        sheet.cell(row=row_number, column=7).value = ','.join(ip_list3)


if __name__ == '__main__':
    # 打开Excel文件
    workbook = openpyxl.load_workbook('测试.xlsx')
    sheet = workbook.active
    bug_name1 = "OpenSSH 'schnorr.c'远程内存破坏漏洞(CVE-2014-1692)"
    bug_name2 = "OpenSSH 'x11_open_helper()'函数安全限制绕过漏洞(CVE-2015-5352)"
    fill_table(bug_name1, sheet, row_number=15)
    fill_table(bug_name2, sheet, row_number=16)
    # 保存修改后的Excel文件
    workbook.save('updated_excel_file.xlsx')

代码运行之后,可以得到下图的结果。

这下还算是比较完美的。不过细心的朋友已经发现了,针对这个小批量数据,这个代码完全是可以拿捏的,但是针对多行数据的话,这个代码就不太友好了。下一篇文章,我们一起来看看【隔壁😼山楂】大佬使用Pandas进行实现!

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python自动化办公的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【哎呦喂 是豆子~】提问,感谢【莫生气】、【隔壁😼山楂】给出的思路和代码解析,感谢【鶏啊鶏。】、【Ineverleft】等人参与学习交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
盘点一个Python自动化办公实战实现数据汇总填充(方法一)
前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python自动化办公的问题,一起来看看吧。
Python进阶者
2023/09/27
1580
盘点一个Python自动化办公实战实现数据汇总填充(方法一)
盘点一个Python自动化办公实战实现数据汇总填充(方法五)
前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python自动化办公的问题,一起来看看吧。
Python进阶者
2023/10/08
1750
盘点一个Python自动化办公实战实现数据汇总填充(方法五)
python处理Excel实现自动化办公教学(含实战)【二】
python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
汀丶人工智能
2022/12/21
1.8K0
python处理Excel实现自动化办公教学(含实战)【二】
Python Linux自动化运维 -- Openpyxl Excel处理
python模块openpyxl pip install openpyxl 使用load_workbook函数读取一个已有的excel文件。 使用Workbook的get_sheet_by_name方法获取Worksheet对象。 使用Worksheet的cell方法获取Cell对象。 类 Workbook Workbook对应Excel工作簿 Workbook对象的部分属性: active:获取活跃的Worksheet; read_only:是否以read_only模式打开excel文件; encod
用户3013098
2022/06/01
2.1K0
Python Linux自动化运维 -- Openpyxl Excel处理
Excel自动化办公
安装 pip install openpyxl==3.0.7 基本操作 import openpyxl print(openpyxl.__version__) # 用openpyxl读取excel表格 wb = openpyxl.load_workbook('信息表.xlsx') print(wb) # 获取工作蒲sheet表名称 sheet1 = wb.sheetnames print("sheet表名称:\n", sheet1) # 获取指定sheet对象 sheet = wb['基本信息'] pr
shaoshaossm
2022/12/26
4740
最全总结 | 聊聊 Python 办公自动化之 Excel(上)
但是,经常会遇到一些重复繁琐的事情,这时候手工操作显得效率极其低下;通过 Python 实现办公自动化变的很有必要
AirPython
2020/11/03
1.6K0
最全总结 | 聊聊 Python 办公自动化之 Excel(上)
Python自动化办公系列之Python操作Excel
③ 在python中使用excel函数公式(很有用)         
磐创AI
2020/05/16
2.4K0
最全总结 | 聊聊 Python 办公自动化之 Excel(中)
上一篇文章中,我们聊到使用 xlrd、xlwt、xlutils 这一组合操作 Excel 的方法
AirPython
2020/11/03
1.6K0
最全总结 | 聊聊 Python 办公自动化之 Excel(中)
Python-接口自动化(九)
上面的这两个东东就叫做夹心饼干,在必要的时候写, 比如说在执行测试用例之前你有数据需要提前准备好,在测试用例执行结束之后有东西需要清除掉,就可以用夹心饼干。在之后的代码中可以看到这个夹心饼干的作用和用法。
py3study
2020/01/16
4540
python处理Excel实现自动化办公教学(含实战)【一】
python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
汀丶人工智能
2022/12/21
1.4K0
python处理Excel实现自动化办公教学(含实战)【一】
Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
官方文档:https://xlrd.readthedocs.io/en/latest/
Python小二
2020/09/08
8K0
Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
python接口自动化测试 - openpyxl基本使用
官方提醒:出于性能考虑, sheet.iter_cols() 方法不支持在只读模式使用
小菠萝测试笔记
2020/06/09
7250
AI办公自动化:用kimi对Excel数据批量进行转置
def transpose_data(workbook_path, end_row):
AIGC部落
2024/06/24
4230
AI办公自动化:用kimi对Excel数据批量进行转置
不吹不黑!Python办公自动化,全网最全整理!
官方文档:https://xlrd.readthedocs.io/en/latest/
释然IT杂谈
2023/08/18
1.6K0
不吹不黑!Python办公自动化,全网最全整理!
python自动化办公——python操作Excel、Word、PDF集合大全
本文是鉴于有些粉丝的工作需求,有时候需要遇到这些文件的处理。因此,我写了一个文章集合,供大家参考,整篇文章已经整理成册(如下图所示)。由于文档获取人数太多,大家如有需求,请关注公众号:【数据分析与统计学之美】,回复关键词:【自动化文档】!
用户7886150
2021/01/24
2K0
Python办公自动化之 openpyxl 操作 Excel
各种数据需要导入Excel?多个Excel要合并?目前,Python处理Excel文件有很多库,openpyxl算是其中功能和性能做的比较好的一个。接下来我将为大家介绍各种Excel操作。
用户6888863
2023/03/01
5510
Python办公自动化之 openpyxl 操作 Excel
【愚公系列】2023年07月 Python自动化办公之openpyxl操作excel
在openpyxl中,主要用到三个概念:Workbooks,Sheets,Cells。
愚公搬代码
2025/05/28
1670
【愚公系列】2023年07月 Python自动化办公之openpyxl操作excel
盘点一个Python自动化办公Excel数据填充实战案例(上篇)
前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,一起来看看吧。有个表格,里面每行信息,如下图所示:
Python进阶者
2023/10/08
2560
盘点一个Python自动化办公Excel数据填充实战案例(上篇)
Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格
Excel 是一个流行且功能强大的 Windows 电子表格应用。openpyxl模块允许您的 Python 程序读取和修改 Excel 电子表格文件。例如,您可能有从一个电子表格中复制某些数据并粘贴到另一个电子表格中的枯燥任务。或者,您可能必须遍历数千行,然后只挑选出其中的一小部分,根据某些标准进行小的编辑。或者你可能不得不查看数百份部门预算的电子表格,寻找任何赤字。这些正是 Python 可以为您完成的那种枯燥、无需动脑的电子表格任务。
ApacheCN_飞龙
2023/04/04
19.1K0
Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格
Python处理Excel数据的方法[通俗易懂]
当Excel中有大量需要进行处理的数据时,使用Python不失为一种便捷易学的方法。接下来,本文将详细介绍多种Python方法来处理Excel数据。
全栈程序员站长
2022/11/18
6.1K0
推荐阅读
相关推荐
盘点一个Python自动化办公实战实现数据汇总填充(方法一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验