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

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

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

第 1 步,读取

在这里插入图片描述

代码:

python">import os
import 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),不过不影响,数据的行号填充的是对的(下面代码是对的)

在这里插入图片描述

python">import os
import 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进制颜色

在这里插入图片描述

代码

python">import os
import openpyxl
from openpyxl.styles import PatternFill

# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./数据源/'+os.listdir('./数据源/')[0])
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
worksheet.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办公自动化的知识各位大佬给个关注吧!


http://www.niftyadmin.cn/n/359081.html

相关文章

AppArmor相关各脚本和服务解析(2)

接前一篇文章&#xff1a;AppArmor相关各脚本和服务解析&#xff08;1&#xff09; 上一篇文章讲到了/lib/apparmor/apparmor.systemd中的reload流程中的__apparmor_restart函数。本文继续解析。 __apparmor_restart函数中的核心是以下语句&#xff1a; parse_profiles reloa…

利用 PRIMO 重构 M87 黑洞图像,普林斯顿高等研究院成功将「甜甜圈」变身「金戒指」

内容一览&#xff1a;2019 年&#xff0c;「事件视界望远镜 (Event Horizon Telescope&#xff0c;简称 EHT)」全球研究团队发布了人类历史上第一张黑洞照片&#xff0c;受限于当时的观测条件&#xff0c;这张黑洞图像只呈现出一个模糊不清的轮廓。近日&#xff0c;天体物理学期…

迪赛智慧数——饼图柱状图(基本饼图和基本柱状图):“怒路症”数据解读

效果图 35%的司机承认自己属于“路怒族”&#xff0c;还有65%的人表示自己不是“路怒族”。 近日&#xff0c;上海两车高架上斗气碰撞差点掉落高架&#xff0c;上海高架出现“史诗级”斗气车。小编在此呼吁大家&#xff0c;开车路上减压&#xff0c;避免坏情绪伴随&#xff0c…

【c语言小项目】基于easyX实现的《是男人就下一百层》小游戏

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…

市面上有哪些软件可以结合agentgpt的?众包平台结合的好处!

使用AgentGPT&#xff0c;提升工作效率&#xff01; 随着科技的迅速发展&#xff0c;人工智能已经成为我们生活中不可或缺的一部分。而AgentGPT则是人工智能领域的一款杰出产品&#xff0c;它能够帮助我们提升工作效率&#xff0c;减少重复性劳动&#xff0c;让我们的生活更加便…

几种逻辑运算符的运算规则及使用

& 按位与 如果两个相应的二进制位都为1&#xff0c;则该位的结果值为1&#xff0c;否则为0 常用用法&#xff1a; 判断奇偶性&#xff1a;用if ((a & 1) 0) 代替 if (a % 2 0)来判断a是不是偶数。 | 按位或 两个相应的二进制位中只要有一个为1&#xff0c;该位的结果…

三、Spring Bean

一、Bean 的生命周期 1. 什么是 Bean 的生命周期? Bean 的 创建 > 初始化 > 销毁。由容器管理 Bean 的生命周期&#xff0c;可以指定 Bean 的 初始化 和 销毁方法。 针对 单例 Bean 的话 容器启动的时候&#xff0c;Bean 对象就创建了。容器销毁的时候&#xff0c;也会调…

开放式耳机和封闭式耳机的区别有哪些?开放式耳机有哪些推荐?

开放式耳机和封闭式耳机的区别主要在以下几个方面&#xff1a; 设计结构&#xff1a;开放式耳机通常有一个开放的设计&#xff0c;不需要塞入耳即可收听音乐&#xff0c;同时与外部环境进行交互。封闭式耳机则是封闭的设计&#xff0c;耳机驱动单元之间是封闭和隔离的&#xf…