使用 Python 操作 Excel 表格

Excel 是我们最常用的工具之一。无论是数据分析还是业务报表,操作 Excel 文件几乎是不可避免的。而 Python 提供了强大的库(如 pandas 和 openpyxl)来高效地处理 Excel 文件。

环境准备

在开始之前,请确保已经安装了所需的 Python 包:

python 复制代码
pip install pandas openpyxl

pandas 是一个功能强大的数据分析工具,openpyxl 则是支持 Excel 文件的底层库。

代码实现

Excel 操作工具模块:excel_utils.py

首先创建一个工具模块,封装常见的 Excel 操作,如读取和写入。以下是代码实现:

python 复制代码
import pandas as pd

def read_excel(file_path, sheet_name=None):
    """
    读取Excel文件
    :param file_path: Excel文件路径
    :param sheet_name: 指定Sheet名称(默认为None,读取第一个Sheet)
    :return: 读取到的DataFrame
    """
    try:
        df = pd.read_excel(file_path, sheet_name=sheet_name)
        print(f"成功读取文件:{file_path}")
        return df
    except Exception as e:
        print(f"读取文件失败:{e}")
        return None

def write_excel(df, output_path, sheet_name="Sheet1"):
    """
    将DataFrame写入Excel文件
    :param df: 要写入的DataFrame
    :param output_path: 输出Excel文件路径
    :param sheet_name: 指定Sheet名称
    """
    try:
        df.to_excel(output_path, index=False, sheet_name=sheet_name)
        print(f"成功写入文件:{output_path}")
    except Exception as e:
        print(f"写入文件失败:{e}")

实战案例

为了演示上述工具模块的用法,我们编写了一个简单的主程序 main.py

python 复制代码
from excel_utils import read_excel, write_excel

# 读取Excel文件
df = read_excel("output.xlsx", sheet_name="Sheet1")

# 修改数据后写入新的文件
if df is not None:
    # 示例:将 "Age" 列的值增加1
    df["Age"] += 1
    write_excel(df, "modified_example.xlsx")

代码解读

读取 Excel 文件

read_excel 函数通过 pandas.read_excel 方法读取指定路径的 Excel 文件,返回一个 DataFrame。如果读取失败,会捕获异常并打印错误信息。

写入 Excel 文件

write_excel 函数接收一个 DataFrame,将其写入指定路径的 Excel 文件中,同时可以设置 Sheet 名称。

实战逻辑

在主程序中,读取了一个名为 output.xlsx 的文件,修改其中的 "Age" 列,然后将更新后的数据保存为新的文件 modified_example.xlsx。

总结

本文通过封装常用的 Excel 操作工具,并结合简单的案例,展示了如何高效地使用 Python 操作 Excel 文件。这种方法适用于日常的数据处理工作,既减少了手动操作的时间,又提高了效率。

相关推荐
慕涯AI几秒前
Agent 30 课程开发指南 - 第21课
人工智能·python
qq_12084093711 分钟前
Three.js AnimationMixer 工程实战:骨骼动画、剪辑切换与时间缩放
开发语言·javascript·ecmascript
源码之家7 分钟前
计算机毕业设计:Python城市天气数据挖掘与预测系统 Flask框架 随机森林 K-Means 可视化 数据分析 大数据 机器学习 深度学习(建议收藏)✅
人工智能·爬虫·python·深度学习·机器学习·数据挖掘·课程设计
Dxy12393102169 分钟前
Python在图片上画多边形:从简单轮廓到复杂区域标注
开发语言·python
weixin_3812881811 分钟前
MongoDB备节点无法读取数据怎么解决_rs.slaveOk()与Secondary读取权限
jvm·数据库·python
南尘NCA866611 分钟前
如何解决企业微信防封行业高封号率痛点
python·企业微信
楼田莉子12 分钟前
同步/异步日志系统:日志器管理器模块\全局接口\性能测试
linux·服务器·开发语言·c++·后端·设计模式
dyxal12 分钟前
内网 Windows 离线安装 uv:极速 Python 包管理器的部署实战
windows·python·uv
qq_6543669814 分钟前
Vue 3 中集成 Three.js 场景的完整实践指南
jvm·数据库·python
人邮异步社区16 分钟前
文科生零基础学 Python 难吗?真不难,难的是找对书!
开发语言·python