使用 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 文件。这种方法适用于日常的数据处理工作,既减少了手动操作的时间,又提高了效率。

相关推荐
kiracrimson1 分钟前
STL:List的使用和模拟实现
开发语言·c++·list
神仙别闹7 分钟前
基于Python+MySQL实现(Web)个人博客系统
python·mysql·php
二十七日秋8 分钟前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
小咕聊编程36 分钟前
基于Django的个人摄影博客网站设计与开发
后端·python·django
北冥you鱼37 分钟前
Go 语言 GORM 使用 Preload:从关联查询到嵌套预加载的完整实践
开发语言·jvm·golang
论文复现现场43 分钟前
DeepSeek V4.1 Flash 和 V4 Pro 有什么区别?API 价格、性能与迁移建议
java·服务器·人工智能·python·大模型api·deepseek·deepseek v4.1
dingzd951 小时前
TikTok账号登录态失效的Cookie字段排查路径
开发语言·php·跨境电商·营销策略
量化炼金 (CodeAlchemy)1 小时前
【量化研究】美股历史数据获取:Yahoo Finance 转 Zorro 回测格式
python·量化研究·量化交易
曹牧1 小时前
C#:The operation has timed out
开发语言·c#
你看我名字1 小时前
数眼智能 Search + Reader 实战:联网问答怎样避免“搜到了,却引用错了”
android·java·开发语言