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 都能提供强大的支持。

相关推荐
yusaisai大鱼几秒前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow
Biomamba生信基地4 分钟前
R语言基础| 功效分析
开发语言·python·r语言·医药
CodeClimb19 分钟前
【华为OD-E卷-木板 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
夜幕龙27 分钟前
iDP3复现代码数据预处理全流程(二)——vis_dataset.py
人工智能·python·机器人
m0_748230941 小时前
Rust赋能前端: 纯血前端将 Table 导出 Excel
前端·rust·excel
晚夜微雨问海棠呀1 小时前
长沙景区数据分析项目实现
开发语言·python·信息可视化
cdut_suye1 小时前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
dundunmm2 小时前
机器学习之scikit-learn(简称 sklearn)
python·算法·机器学习·scikit-learn·sklearn·分类算法
古希腊掌管学习的神2 小时前
[机器学习]sklearn入门指南(1)
人工智能·python·算法·机器学习·sklearn
Swift社区2 小时前
Excel 列名称转换问题 Swift 解答
开发语言·excel·swift