欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > python:使用openpyxl模块处理excel

python:使用openpyxl模块处理excel

2024/10/24 4:32:31 来源:https://blog.csdn.net/G541788_/article/details/140289607  浏览:    关键词:python:使用openpyxl模块处理excel

前言

        最近在实践excel的处理,在此途中,我彻底抛弃了xlwt + xlrd的组合,投入了openpyxl这一模块的怀抱。

        并成功实现了excel单元格数据的快速访问、修改、样式保持,以及添加填充色等功能。

        至于为什么写这个博客,主要是因为现在csdn里留着很多关于xlwt + xlrd的无脑使用,这为其他开发人员设置了一种过时的误区。

        这里我提供一些详细的测试代码,截止现在它们都可以直接运行,或许将为你的功能添砖加瓦。

 

代码

        1、获得目标行目标列、制定单元格的数据

from openpyxl import load_workbook# 打开现有的Excel文件
wb = load_workbook("appendix/test_openpyxl.xlsx")# 获取活动的Worksheet
ws = wb.active"""读取行数据
"""
# 读取第二行的数据
second_row = []
for cell in ws[2]:  # ws[2] 表示第二行的单元格对象second_row.append(cell.value)
print("第二行的数据:", second_row)"""读取列数据
"""
# 读取从第一行开始的 从第四列开始至第六列结束的所有数据集(二维列表)
rows = ws.iter_rows(min_row=1, min_col=4, max_col=6, values_only=True)
fourth_column = []
for row in rows:fourth_column.append(row)
print("四五六列的所有数据:", fourth_column)# fourth_column[row][col]
# row:以起始行开始计算的列号,这里相当于1+1=2行
# col:以起始列开始计算的列号,这里相当于4+1=5列
print('第五列第二行数据:', fourth_column[1][1])"""读取精准行列数据
"""
print('第12列第4行数据:', ws.cell(row=4, column=12).value)# 关闭Excel文件
wb.close()

        2、在保持原模板样式不变的条件下变更数据、以及新增样式

from openpyxl import load_workbook# 1. 读取原Excel文件
original_file_path = 'appendix/test.xlsx'
workbook_original = load_workbook(original_file_path)workbook_original_sheet = workbook_original.active# 3. 复制原Excel的内容到新文件
sheet_original = workbook_original.active# 4. 获取M列数据项
column_M = sheet_original['M']# 5. 输出M列的数据项
for index, cell in enumerate(column_M):print(cell.value)# 6. 修改内容(例如修改M3单元格内容)
workbook_original_sheet['M3'] = '通过'# 这是另外一种修改方式,row是指定行,column是指定列 这里表示 3行13列
# workbook_original_sheet.cell(row=3, column=13, value='通过')# 7. 检查M列,若值为 通过则标绿,不通过标红
for index, cell in enumerate(column_M):status = cell.valueif status == "通过":fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")  # 绿色elif status == '不通过':fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")  # 红色else:continuecell.fill = fill# 8. 保存新的Excel文件
new_file_path = 'test_manfish.xlsx'
workbook_original.save(new_file_path)

        创作不易,点个关注行不行 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com