Python——openpyxl读取Excel表格(读取、单元格修改、单元格加底色、字体字号修改)—2024-3-4更新

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

常见读取Excel的库

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

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

第 1 步,读取

在这里插入图片描述

代码:

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

在这里插入图片描述

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进制颜色

在这里插入图片描述

代码

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

设置字体字号

代码

import openpyxl
from openpyxl.styles import Font
def f2():
    wb = openpyxl.load_workbook('./结果/'+os.listdir("./结果/")[0])
    ws = wb.active

    # 修改表头字体为微软雅黑加粗10号字体
    for cell in ws[1]:
        cell.font = Font(name='微软雅黑', size=10, bold=True)

    # 修改其他单元格字体为微软雅黑9号字体
    for row in ws.iter_rows(min_row=2):
        for cell in row:
            cell.font = Font(name='微软雅黑', size=9)

    wb.save('结果/最终结果.xlsx')

f2()

总结

  • 希望对初学者有帮助

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

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一晌小贪欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值