Python 操作 Excel 全攻略 | 包括读取、写入、表格操作、图像输出和字体设置

文章目录

  • 前言
  • Python 操作 Excel 教程
    • 1. Excel 文件的读取与写入
    • 2. Excel 表格的操作
      • 2.1 插入和删除行和列
      • 2.2 遍历表格中的单元格并修改值
    • 3. 图像的输出
      • 3.1 输出柱状图
    • 4. 字体的设置
      • 4.1 设置单元格的字体大小和颜色
      • 4.2 设置单元格的加粗和斜体
      • 4.3 设置单元格的边框和填充颜色
    • 总结

前言

当今,Excel 是许多人日常生活和工作中必不可少的工具。但是在使用 Excel 的过程中,我们常常需要面对数据过于庞大、操作复杂等问题。Python 作为一门强大的编程语言,具有对 Excel 文件进行读写、表格操作、图像输出和字体设置等功能的能力,可以极大地提高我们处理 Excel 文件的效率。
本文将为您提供 Python 操作 Excel 文件的全面攻略,包括如何读取和写入 Excel 文件、Excel 表格的操作、图像的输出和字体的设置等方面,以及详细的代码注释。无论是初学者还是有一定经验的 Python 开发者,都可以通过本文掌握这些实用技巧,更好地应用 Python 处理 Excel 文件,提高工作效率,节约时间成本。
快来了解本文所提供的 Python 操作 Excel 全攻略,让您更加得心应手地使用这个强大的工具!

Python 操作 Excel 教程

本教程将介绍如何使用 Python 操作 Excel 文件,包括 Excel 文件的读取与写入、Excel 表格的操作、图像的输出和字体的设置等内容。

1. Excel 文件的读取与写入

在这里插入图片描述

首先需要安装 openpyxl 库,该库为 Python 对 Excel 文件进行操作的工具包。

import openpyxl

# 打开 Excel 文件
workbook = openpyxl.load_workbook("文件地址.xlsx")

# 获取当前活动工作表(默认为第一张)
sheet = workbook.active

# 遍历每一行并输出 A 列的值
for row in sheet.iter_rows(min_row=1, min_col=1, max_row=sheet.max_row, max_col=1, values_only=True):
    for cell in row:
        print(cell) 

# 创建新的 Excel 文件并添加数据
new_workbook = openpyxl.Workbook()
new_sheet = new_workbook.active
new_sheet["A1"] = "Hello, World!"
new_workbook.save("新文件地址.xlsx")

注释:

  • openpyxl.load_workbook() 函数用于打开 Excel 文件,并返回一个 Workbook 对象。
  • workbook.active 属性获取到当前活动的工作表,即第一张工作表。
  • sheet.iter_rows() 方法用于迭代每一行并输出 A 列的值。
  • openpyxl.Workbook() 函数用于创建新的 Excel 文件,并返回一个 Workbook 对象。
  • new_workbook.active 属性获取到当前活动的工作表,即第一张工作表。
  • new_sheet["A1"] 将值 “Hello, World!” 添加到新的 Excel 文件的 A1 单元格中。
  • new_workbook.save() 方法将新的 Excel 文件保存到指定的地址中。

2. Excel 表格的操作

在这里插入图片描述

2.1 插入和删除行和列

import openpyxl

# 打开 Excel 文件
workbook = openpyxl.load_workbook("文件地址.xlsx")
sheet = workbook.active

# 在第一行添加数据
sheet.insert_rows(1)

# 在第一列添加数据
sheet.insert_cols(1)

# 删除第一行
sheet.delete_rows(1)

# 删除第一列
sheet.delete_cols(1)

workbook.save("文件地址.xlsx")

注释:

  • sheet.insert_rows() 方法用于在指定的行之前插入一行数据。
  • sheet.insert_cols() 方法用于在指定的列之前插入一列数据。
  • sheet.delete_rows() 方法用于删除指定的行。
  • sheet.delete_cols() 方法用于删除指定的列。

2.2 遍历表格中的单元格并修改值

import openpyxl

# 打开 Excel 文件
workbook = openpyxl.load_workbook("文件地址.xlsx")
sheet = workbook.active

# 遍历 A 列并将单元格里面的值加 1
for cell in sheet["A"]:
    cell.value += 1

workbook.save("文件地址.xlsx")

注释:

  • sheet["A"] 获取到 A 列的所有单元格,并返回一个 tuple 对象。
  • 遍历 tuple 中的每个单元格,并将单元格里面的值加 1。

3. 图像的输出

3.1 输出柱状图

import openpyxl
from openpyxl.chart import BarChart, Reference, Series

# 打开 Excel 文件
workbook = openpyxl.load_workbook("文件地址.xlsx")
sheet = workbook.active

# 获取 A 和 B 列中的数据
data = Reference(sheet, min_row=1, min_col=1, max_row=sheet.max_row, max_col=2)
labels = Reference(sheet, min_row=1, min_col=1, max_row=sheet.max_row, max_col=1)

# 创建柱状图
chart = BarChart()

# 添加数据
chart.add_data(data=data)

# 添加横坐标标签
chart.set_categories(labels)

# 设置标题
chart.title = "销售数据"

# 将图表插入到工作表的 D1 单元格
sheet.add_chart(chart, "D1")

# 保存文件
workbook.save("文件地址.xlsx")

注释:

  • Reference() 函数用于获取 Excel 表格中指定数据范围的引用。
  • BarChart() 函数用于创建一个柱状图对象。
  • chart.add_data() 方法用于向柱状图中添加数据。
  • chart.set_categories() 方法用于设置图表的横坐标标签。
  • chart.title 属性用于设置图表的标题。
  • sheet.add_chart() 方法用于将柱状图插入到指定的单元格中。

4. 字体的设置

4.1 设置单元格的字体大小和颜色

import openpyxl
from openpyxl.styles import Font, colors

# 创建新的 Excel 文件
workbook = openpyxl.Workbook()
sheet = workbook.active

# 添加数据,并设置字体大小和颜色
sheet["A1"] = "Hello, World!"
font = Font(size=16, color=colors.RED)
sheet["A1"].font = font

workbook.save("新文件地址.xlsx")

注释:

  • Font() 函数用于设置字体的风格。
  • colors 模块用于定义颜色常量,如 RED、BLUE 等。
  • sheet["A1"].font 属性用于设置单元格的字体。

4.2 设置单元格的加粗和斜体

import openpyxl
from openpyxl.styles import Font

# 创建新的 Excel 文件
workbook = openpyxl.Workbook()
sheet = workbook.active

# 添加数据,并设置字体的加粗和斜体
sheet["A1"] = "Hello, World!"
font = Font(bold=True, italic=True)
sheet["A1"].font = font

workbook.save("新文件地址.xlsx")

注释:

  • Font() 函数的 bolditalic 参数用于设置字体是否加粗和是否倾斜。

4.3 设置单元格的边框和填充颜色

import openpyxl
from openpyxl.styles import Border, Side, PatternFill, colors

# 创建新的 Excel 文件
workbook = openpyxl.Workbook()
sheet = workbook.active

# 添加数据,并设置单元格的边框和填充颜色
sheet["A1"] = "Hello, World!"

# 设置边框
border = Border(
    left=Side(style="thin", color=colors.DARKGRAY),
    right=Side(style="thin", color=colors.DARKGRAY),
    top=Side(style="thin", color=colors.DARKGRAY),
    bottom=Side(style="thin", color=colors.DARKGRAY)
)
sheet["A1"].border = border

# 设置填充颜色
fill = PatternFill(fill_type="solid", fgColor=colors.YELLOW)
sheet["A1"].fill = fill

workbook.save("新文件地址.xlsx")

注释:

  • Border() 函数用于设置单元格的边框样式,其中 Side() 函数用于设置边框的粗细和颜色。
  • PatternFill() 函数用于设置单元格的填充颜色,其中 fill_type 参数为填充的类型,fgColor 参数为填充的前景色。

总结

以上是 Python 操作 Excel 的一些常见操作内容,包括读取和写入 Excel 文件、表格的操作、图像的输出以及字体的设置等方面。笔芯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/31250.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS弹性布局常用设置

目录 一、单位元素 二、弹性容器 三、常用属性 三、项目实战效果 一、单位元素 vm 1vm 为视口的1% vh 视口高的1% vmin 参照长边 vmax 参照长边 rem 等比缩放 需要设置最外层盒子html设置vw 根字号html的--- font-- 1vm 去适配 初始化 //初始化*{padding: 0;margin: 0}//…

【Python GUI编程系列 01】安装python pycharm 和 pyside6

Python GUI编程系列 01 安装python pycharm 和 pyside61、安装python2、安装pycharm3、安装 pyside6 安装python pycharm 和 pyside6 本系列使用python3 pycharmpyside6 来进行python gui设计,首先我们来配置编程环境 PS:为了减少复杂程度,本…

MySQL:事务

事务 在介绍事务之前,我们先来了解一个案例: 在一个买票的软件中,当客户端A检查还有一张票时,将票卖点,但是还没有更新数据库,客户端B检查了票数,发现大于0,于是又卖掉了一张票。然…

【五子棋实战】第3章 算法包装成第三方接口

【五子棋实战】第3章 算法包装成第三方接口 使用Flask开放接口 ## 定义接口输入 ## 开放接口、跨域配置、数据解析 数据预处理 ## 数据检查与异常捕获 ## 预处理数据 ## 定义接口输出 开启接口 继续学习下一篇实战! 我们在上一章实现了博弈树负值极大alpha…

Web服务器群集:部署LNMP平台

目录 一、理论 1.LNMP平台 2.Nginx服务基础 3.Nginx访问控制 4.Nginx虚拟主机 5.PHP 二、实验 1.LNMP架构DISCUZ论坛应用 三、问题 1.没有规则可以创建“default”需要的目标“build”。 2.nginx重启报错 3.yum安装提示报错 4.配置文件报错 5.PHP页面无法打开 四…

菲涅尔圆孔衍射matlab完整程序分享

根据惠更斯 - 菲涅耳原理,光的衍射是光束内部的次波之间的相干叠加,衍射光波场的光振动符合菲涅耳积分公式。但直接运用菲涅耳积分公式计算衍射光场是很困难的。对于夫琅和费衍射(远场衍射),在光源和接收屏距离衍射屏均为无穷远的…

【C++】内存管理、new和delete操作类型、operator new和operator delete函数、new和delete的实现原理

文章目录 1.C/C内存管理2.C语言的内存管理方式3.C内存管理方式3.1 new和delete操作内置类型3.2 new和delete操作自定义类型 4.operator new与operator delete函数5.new和delete的实现原理5.1内置类型5.2 自定义类型 1.C/C内存管理 在C/C中,内存管理是程序员负责管理…

TCP 学习笔记

Win R 打开控制台输入CMD 打开小黑窗, 输入ipconfig 查询本机地址 “外网IP是全世界唯一的IP地址,仅分配给一个网络设备。而内网IP是由路由器分配给每一部内部使用的IP地址,而内网的所有用户都是通过同一个外网IP地址进行上网的,而内网的IP地址每个人的都不一样…

SQL 基础语句

SQL 基础语句 DDL Data Definition Language 数据定义语言创建 create删除 drop修改 alter清空 truncate show tables ; --查看所有表: drop database db1; --删除数据库 create database db1 default character set utf8; --创建数据库 use databas…

十大基础算法

一、选择排序 过程简单描述: 首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。其次,在剩下的元素中找到最小的元素,将它与数组的第二…

C++【STL】之priority_queue学习

优先级队列 优先级队列priority_queue也是STL库中容器适配器的一种,常用于进行数据优先级的处理,说到这儿是不是发现有些熟悉,没错它和我们之前讲解的堆本质上就是一个东西,底层都是数组存储的完全二叉树,它在STL库中…

设计模式(二十二):行为型之备忘录模式

设计模式系列文章 设计模式(一):创建型之单例模式 设计模式(二、三):创建型之工厂方法和抽象工厂模式 设计模式(四):创建型之原型模式 设计模式(五):创建型之建造者模式 设计模式(六):结构型之代理模式 设计模式…

华为OD机试真题 JavaScript 实现【最短木板长度】【2022Q4 100分】,附详细解题思路

一、题目描述 小明有 n 块木板,第 i ( 1 ≤ i ≤ n ) 块木板长度为 ai。 小明买了一块长度为 m 的木料,这块木料可以切割成任意块,拼接到已有的木板上,用来加长木板。 小明想让最短的木板尽量长。 请问小明加长木板后&#xff0c…

Android12之执行adb disable-verity后android无法启动(一百五十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

前沿应用丨大规模无人机集群与“虚实结合”半实物仿真系统

一、应用背景 无人机集群在军事、安全、救援、航空监测、物流配送等领域具有广泛的应用前景。它可以提高任务执行的效率、灵活性和安全性,同时降低人力资源的需求和风险,无人机集群研究涉及多个学科领域,如机器人学、控制理论、通信技术和人工…

Verilog | 基4 booth乘法器

上接乘法器介绍 原理 跟基2的算法一样,假设A和B是乘数和被乘数,且有: A ( a 2 n 1 a 2 n ) a 2 n − 1 a 2 n − 2 … a 1 a 0 ( a − 1 ) B b 2 n − 1 b 2 n − 2 … b 1 b 0 \begin{align}A&(a_{2n1}a_{2n})a_{2n−1}a_{2n−2}……

【ARIMA-LSTM】合差分自回归移动平均方法-长短期记忆神经网络研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

基于Nginx1.22+PHP8+MySQL8安装Discuz! X3.5

基于Nginx1.22PHP8MySQL8安装Discuz! X3.5 1. 安装PHP82. 安装MySQL83. 配置Nginx1.224. 安装Discuz! X3.5 1. 安装PHP8 更新系统: yum update安装EPEL存储库: yum install epel-release安装Remi存储库(提供了最新的 PHP 版本)&…

阿里云主机详解:ECS/轻量/虚拟主机/GPU/裸金属/云电脑详解

阿里云云主机分为云虚拟主机、云服务器ECS、轻量应用服务器、GPU云服务器、弹性裸金属服务器、专有宿主机、FPGA云服务器、高性能计算E-HPC、无影云电脑等,阿里云百科来详细说下阿里云云主机详解: 目录 阿里云云主机 云服务器ECS 轻量应用服务器 云…

python数字猜谜2.0

改进了一下数字猜谜: 开头,可选等级: import random guess -1 c 0 print("数字猜谜游戏!") n input("选择等级 A B C:") if (n "A") or (n "a"):guess random.randint…