Python 读写 Excel 文件:创建、遍历、更新与样式处理

Excel 是广泛使用的电子表格软件,用于数据存储、分析和可视化。Python 通过第三方库如 openpyxlpandas 提供了丰富的功能来读写 Excel 文件。本文将详细介绍如何使用 Python 进行 Excel 文件的创建、遍历、更新、删除以及样式处理等操作。

1. 安装必要的库

首先,需要安装 openpyxl 库,这是一个用于读写 Excel 文件的库。可以通过 pip 安装:

bash 复制代码
pip install openpyxl
2. 创建 Excel 文件

使用 openpyxl 创建一个新的 Excel 工作簿,并向其中添加数据。

python 复制代码
from openpyxl import Workbook

# 创建一个新的工作簿
wb = Workbook()

# 获取活动工作表
ws = wb.active
ws.title = "Sheet1"

# 向工作表中添加数据
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws['C1'] = 'City'

ws.append(['Alice', 30, 'New York'])
ws.append(['Bob', 25, 'Los Angeles'])

# 保存工作簿
wb.save("example.xlsx")
3. 单个表格文件遍历

遍历单个 Excel 文件中的所有数据。

python 复制代码
from openpyxl import load_workbook

# 加载已有的工作簿
wb = load_workbook("example.xlsx")

# 获取工作表
ws = wb.active

# 遍历每一行
for row in ws.iter_rows(values_only=True):
    print(row)
4. 批量表格文件遍历

遍历多个 Excel 文件中的数据。

python 复制代码
import os

# 指定目录路径
directory = "excel_files"

# 遍历目录中的所有 Excel 文件
for filename in os.listdir(directory):
    if filename.endswith(".xlsx"):
        filepath = os.path.join(directory, filename)
        wb = load_workbook(filepath)
        ws = wb.active
        
        # 遍历每一行
        for row in ws.iter_rows(values_only=True):
            print(row)
5. 从指定行列遍历表格

从指定的行和列开始遍历表格数据。

python 复制代码
# 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active

# 从第2行第2列开始遍历
for row in ws.iter_rows(min_row=2, min_col=2, values_only=True):
    print(row)
6. 表格数据更新

更新表格中的数据。

python 复制代码
# 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active

# 更新单元格数据
ws['B2'] = 31

# 添加新数据
ws.append(['Charlie', 28, 'Chicago'])

# 保存工作簿
wb.save("example.xlsx")
7. 表格数据删除

删除表格中的数据。

python 复制代码
# 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active

# 删除第2行
ws.delete_rows(2)

# 保存工作簿
wb.save("example.xlsx")
8. 单元格样式处理

设置单元格的样式,如字体颜色、背景色等。

python 复制代码
from openpyxl.styles import Font, PatternFill

# 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active

# 设置单元格字体颜色
ws['A1'].font = Font(color="FF0000")

# 设置单元格背景色
ws['A1'].fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# 保存工作簿
wb.save("example.xlsx")
9. 合并单元格读取

读取合并单元格的数据。

python 复制代码
# 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active

# 合并单元格
ws.merge_cells('A1:C1')

# 读取合并单元格的数据
merged_cell = ws.cell(row=1, column=1)
print(merged_cell.value)
10. 示例:完整的 Excel 文件读写与更新

下面是一个完整的示例,演示如何读取 Excel 文件、更新数据并重新写入文件:

python 复制代码
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill

# 创建新的 Excel 文件
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"

# 添加数据
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws['C1'] = 'City'
ws.append(['Alice', 30, 'New York'])
ws.append(['Bob', 25, 'Los Angeles'])

# 保存工作簿
wb.save("example.xlsx")

# 加载已有的工作簿
wb = load_workbook("example.xlsx")
ws = wb.active

# 更新数据
ws['B2'] = 31
ws.append(['Charlie', 28, 'Chicago'])

# 删除数据
ws.delete_rows(2)

# 设置单元格样式
ws['A1'].font = Font(color="FF0000")
ws['A1'].fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# 合并单元格
ws.merge_cells('A1:C1')

# 保存工作簿
wb.save("example.xlsx")

# 遍历数据
for row in ws.iter_rows(values_only=True):
    print(row)
11. 总结

本文详细介绍了如何使用 Python 进行 Excel 文件的创建、遍历、更新、删除以及样式处理等操作。通过 openpyxl 库,可以轻松地读写 Excel 文件,并对其进行各种操作。掌握这些基本操作对于处理各种数据存储和分析任务非常重要。

通过上述示例和步骤,您可以熟练地使用 Python 来管理和操作 Excel 文件,从而提高数据处理的效率和灵活性。无论是进行简单的数据读写还是复杂的文件操作,Python 都能提供强大的支持。

相关推荐
java1234_小锋6 分钟前
[免费]基于Python的Flask+Vue3在线图书(图书借阅)管理系统【论文+源码+SQL脚本】
python·python毕业设计·图书借阅·在线图书
派大鑫wink8 分钟前
Python 大数据毕业设计:电影票房可视化分析系统(Flask+Echarts + 爬虫实战)
大数据·python·课程设计
JAVA+C语言11 分钟前
Python+Django 核心介绍
开发语言·python·django
中年程序员一枚12 分钟前
不想花钱买会员,自己动手用python制作视频
开发语言·python·音视频
qq_2147826114 分钟前
Hadley Wickham长文回顾:R语言tidyverse过去20年的演进之路、现状与未来展望!
python·算法·线性回归
BoBoZz1922 分钟前
CellsInsideObject 网格面内外与交界的判定
python·vtk·图形渲染·图形处理
@小码农23 分钟前
2025年厦门市小学生信息学竞赛C++(初赛)真题-附答案
开发语言·c++·python·算法·蓝桥杯
星川皆无恙27 分钟前
基于ARIMA 算法模型和NLP:社交媒体舆情分析在涉众型经济犯罪情报挖掘中的应用研究
人工智能·爬虫·python·算法·机器学习·自然语言处理·数据分析
SCBAiotAigc35 分钟前
一个github的proxy url
人工智能·python
Chen--Xing36 分钟前
LeetCode 11.盛最多水的容器
c++·python·算法·leetcode·rust·双指针