广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python——openpyxl读取Excel表格(读取、单元格修改、单元格加底色)
  • 630
分享到

Python——openpyxl读取Excel表格(读取、单元格修改、单元格加底色)

pythonexcel开发语言python办公自动化自动化 2023-10-26 19:10:32 630人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

🌸 欢迎来到python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:一晌小贪欢的博客主页 👍

首先python读取excel的库有很多,包括xlwings,pandas,xlrd等等,我比较常用的是openpyxl,以及pandas,当然还有喜欢将数据量比较大的Excel转为csv格式再读取。

今天我们用openpyxl来读取excel文件,读取的时候可以将每一行的信息转为列表,最重要的是,可以输出每一行的行号,这样后期就可以修改单元格的内容,就可以靠行号

第 1 步,读取

在这里插入图片描述

代码:

import osimport openpyxl# 打开 Excel 文件,获取 Workbook 对象workbook = openpyxl.load_workbook('./数据源/'+os.listdir('./数据源/')[0])# 选择需要读取数据的 Sheet,获取 Worksheet 对象worksheet = workbook.active# 循环遍历每一行,将每一行的数据以列表形式添加到 rows 列表中for i, row in enumerate(worksheet.iter_rows(values_only=True), 1):    d = list(row)    print(f"行{i}",d)# workbook.save("./结果.xlsx"),由于这里只是读取,没有修改,无需保存

第2 步,修改

如我在K列,增加了一列把上述代码的行号填充进去

worksheet[“K{行号}”] = 赋值

在这里插入图片描述

哈哈,第一行忘记跳过了(加个continue),不过不影响,数据的行号填充的是对的(下面代码是对的)

在这里插入图片描述

import osimport openpyxl# 打开 Excel 文件,获取 Workbook 对象workbook = openpyxl.load_workbook('./数据源/'+os.listdir('./数据源/')[0])# 选择需要读取数据的 Sheet,获取 Worksheet 对象worksheet = workbook.active# 循环遍历每一行,将每一行的数据以列表形式添加到 rows 列表中for i, row in enumerate(worksheet.iter_rows(values_only=True), 1):    if i== 1:        continue    d = list(row)    worksheet[f"K{i}"] = i    print(f"行{i}",d)workbook.save("./结果.xlsx")

设置单元格宽、高,以及底色

我们给 B 列设置宽一点

worksheet.column_dimensions['B'].width = 15
worksheet.column_dimensions['1'].height = 15 # 这是这是第一行的 行高,以此类推

设置单元格底色

worksheet[’A1'].fill = PatternFill("solid", fGColor="3CB371") # 如将A1单元格设置【“3CB371”】这个颜色,这是16进制颜色

在这里插入图片描述

代码

import osimport openpyxlfrom openpyxl.styles import PatternFill# 打开 Excel 文件,获取 Workbook 对象workbook = openpyxl.load_workbook('./数据源/'+os.listdir('./数据源/')[0])# 选择需要读取数据的 Sheet,获取 Worksheet 对象worksheet = workbook.activeworksheet.column_dimensions['C'].width = 20# 循环遍历每一行,将每一行的数据以列表形式添加到 rows 列表中d2 = {i:chr(i+64) for i in range(1, 27)}# print(d)for i, row in enumerate(worksheet.iter_rows(values_only=True), 1):    k = i    if k<=11:        worksheet[d2[k]+'1'].fill = PatternFill("solid", fgColor="3CB371")    if i== 1:        continue    d = list(row)    worksheet[f"K{i}"] = i    print(f"行{i}",d)workbook.save("./结果.xlsx")

希望对大家有帮助

致力于办公自动化的小小程序员一枚

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!

来源地址:https://blog.csdn.net/weixin_42636075/article/details/130868632

--结束END--

本文标题: Python——openpyxl读取Excel表格(读取、单元格修改、单元格加底色)

本文链接: https://www.lsjlt.com/news/468989.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作