游乐游手机版
首页/业界动态/文章详情

Python处理Excel的4个常用操作与实用技巧

时间:2026-08-14 22:44
用Python处理Excel,3小时的工作量3秒就能搞定 下午三点,当一份包含上百个文件的销售数据统计任务突然摆到面前,并且要求“下班前交活儿”时,那种熟悉的窒息感是不是又回来了? 接下来的流程几乎可以预判:机械地打开第一个文件,复制、粘贴、求和……重复到第50次时,大脑已经一片空白。 这种场景,恐

用Python处理Excel,3小时的工作量3秒就能搞定

下午三点,当一份包含上百个文件的销售数据统计任务突然摆到面前,并且要求“下班前交活儿”时,那种熟悉的窒息感是不是又回来了?

接下来的流程几乎可以预判:机械地打开第一个文件,复制、粘贴、求和……重复到第50次时,大脑已经一片空白。

这种场景,恐怕每位职场人都心有戚戚:每天被枯燥的表格格式调整、数据填报和结果汇总所淹没;耗费数小时手动操作,眼睛酸痛不说,最后还容易出错;而当你还在埋头苦干时,隔壁的同事早已收拾妥当,准时打卡下班。

是时候停止这种低效的自我消耗了。

借助Python,那些动辄数小时的Excel重复性工作,完全有可能在几秒钟内自动完成。下面,我们就来系统地看看,如何用Python实现Excel的自动化处理,真正让你解放双手,高效办公。

一、引言:为什么你还在手动改Excel?

下午3点,领导扔给你100个Excel文件:“把这些销售数据统计一下,下班前给我。”

你深吸一口气,打开第一个文件,复制、粘贴、求和... 重复了第50次后,你开始怀疑人生。

这种场景是不是很眼熟?

  • 每天要重复处理同样的表格,改格式、填数据、汇总结果
  • 手动复制粘贴改了3小时,眼睛都花了,结果还tm报错
  • 同事准时下班摸鱼,你还在苦逼地改表格

别再折磨自己了!

用Python处理Excel,3小时的工作量3秒就能搞定。今天小甲鱼就手把手教你,用Python实现Excel自动化处理,让你准时下班!

二、正文

1. 环境准备:两个库搞定一切

要让Python与Excel对话,其实只需两个核心库就足够了。

pip install openpyxl pandas
  • openpyxl:专门用于读写.xlsx格式的Excel文件,性能出色,功能全面,尤其擅长处理单元格格式。
  • pandas:数据分析领域的“瑞士军刀”,在进行数据汇总、筛选和分析时堪称神器。

对了,如果你的数据源是旧版的.xls格式文件,那么可能需要额外安装 xlrd 和 xlwt 这两个库来兼容。

2. 读取Excel:一行代码搞定

还在一个个双击文件图标?读取Excel文件,在Python里真正可以做到一行代码完成。

import pandas as pd

# 读取Excel文件
df = pd.read_excel('销售数据.xlsx')
print(df.head())  # 查看前5行
print(df.shape)   # 查看数据规模

如果需要读取特定的工作表,或者一次性读取多个表,方法同样直观:

# 读取指定Sheet
df = pd.read_excel('销售数据.xlsx', sheet_name='2024年1月')

# 一次性读取多个Sheet,返回一个字典
df_dict = pd.read_excel('销售数据.xlsx', sheet_name=['Sheet1', 'Sheet2'])

3. 写入Excel:想怎么写就怎么写

数据处理完毕,如何优雅地存回Excel?方法和读取一样简洁。

import pandas as pd

# 假设我们生成了处理后的数据
data = {
    '姓名': ['张三', '李四', '王五'],
    '销售额': [10000, 25000, 18000],
    '提成': [1000, 2500, 1800]
}
df = pd.DataFrame(data)

# 保存到Excel,不保存索引,并指定工作表名称
df.to_excel('员工提成表.xlsx', index=False, sheet_name='提成明细')
print(“保存成功!”)

如果想把多个数据框写入同一个Excel文件的不同工作表,可以这样做:

with pd.ExcelWriter('汇总表.xlsx') as writer:
    df1.to_excel(writer, sheet_name=‘1月’, index=False)
    df2.to_excel(writer, sheet_name=‘2月’, index=False)

4. 实战场景:批量处理100个文件

批量处理,才是自动化的精髓所在。想象一下,有一百个销售数据文件需要分别计算总额,手动操作简直不敢想。但用Python,不过是一个循环的事儿。

import pandas as pd
import os
from pathlib import Path

# 获取当前目录下所有xlsx文件
files = list(Path('.').glob(‘*.xlsx’))
results = []

for file in files:
    try:
        df = pd.read_excel(file)
        # 假设销售额列名叫“销售额”
        total = df[‘销售额'].sum()
        results.append({
            ‘文件名': file.name,
            ‘销售总额': total
        })
        print(f”✓ {file.name} 处理完成,总额: {total}”)
    except Exception as e:
        print(f”✗ {file.name} 处理失败: {e}”)

# 将汇总结果保存为新的Excel
result_df = pd.DataFrame(results)
result_df.to_excel(‘汇总结果.xlsx’, index=False)
print(“\n? 全部处理完成!汇总结果已保存”)

运行这段代码后,控制台会清晰地展示处理进度:

✓ 1月销售.xlsx 处理完成,总额: 150000
✓ 2月销售.xlsx 处理完成,总额: 180000
✓ 3月销售.xlsx 处理完成,总额: 165000
? 全部处理完成!汇总结果已保存

5. 进阶技巧:数据清洗一步到位

现实中的数据往往杂乱无章,充斥着空值、重复项和错误格式。别担心,这些清洗工作也能一站式完成。

import pandas as pd

df = pd.read_excel(‘原始数据.xlsx’)

# 1. 删除完全重复的行
df = df.drop_duplicates()

# 2. 填充空值,例如将销售额的空值填为0
df[‘销售额'] = df[‘销售额'].fillna(0)

# 3. 筛选符合条件的行,比如只看销售额大于1000的
df = df[df[‘销售额'] > 1000]

# 4. 按条件分组汇总,例如按部门统计销售额总计
summary = df.groupby(‘部门')[‘销售额'].sum().reset_index()

# 5. 保存清洗后的结果
summary.to_excel(‘清洗后数据.xlsx’, index=False)
print(“数据清洗完成!”)

6. 格式设置:让Excel更好看

用pandas直接导出的表格可能略显朴素。想让报表看起来更专业、更美观,就需要请出openpyxl来设置格式了。

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Alignment

# 先用pandas处理并保存数据
df = pd.read_excel(‘销售数据.xlsx’)
df.to_excel(‘处理后.xlsx’, index=False)

# 再用openpyxl加载文件,设置格式
wb = load_workbook(‘处理后.xlsx’)
ws = wb.active

# 设置表头样式 - 蓝色背景加粗体白字
header_fill = PatternFill(start_color=‘4472C4’, end_color=‘4472C4’, fill_type=‘solid’)
header_font = Font(bold=True, color=‘FFFFFF’)
for cell in ws[1]:  # 第一行是表头
    cell.fill = header_fill
    cell.font = header_font
    cell.alignment = Alignment(horizontal=‘center’)

# 自动调整所有列的宽度,使内容完全显示
for column in ws.columns:
    max_length = 0
    column_letter = column[0].column_letter
    for cell in column:
        try:
            if len(str(cell.value)) > max_length:
                max_length = len(str(cell.value))
        except:
            pass
    adjusted_width = (max_length + 2) * 1.2
    ws.column_dimensions[column_letter].width = adjusted_width

wb.save(‘格式化后.xlsx’)
print(“格式设置完成,文件已保存!”)

三、总结

回顾一下今天梳理的核心技能:

  • 读取Excel - 一个 pd.read_excel() 函数即可打开数据世界。
  • 写入Excel - 通过 df.to_excel(),可以灵活地将数据持久化保存。
  • 批量处理 - 利用循环结构,轻松实现海量文件的自动化操作。
  • 数据清洗 - 删除重复值、填充空值、筛选与分组,化杂乱为整洁。
  • 格式美化 - 结合openpyxl,让输出的表格兼具专业性和可读性。

说到底,用Python处理Excel的核心逻辑就是把那些重复、繁琐且易错的操作,封装成简短可靠的代码。将时间从无效的重复劳动中解放出来,这才是提升工作效率的关键。

来源:https://www.51cto.com/article/837612.html
上一篇紫光国微2026年上半年归母净利润7.98亿元同比增长15.29% 下一篇生益电子2026年上半年归母净利润11.11亿元同比增长109.36%
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
台式机加装固态硬盘怎么选?三星9100 PRO深度解析
业界动态 · 2026-09-01

台式机加装固态硬盘怎么选?三星9100 PRO深度解析

台式机升级存储常受限于系统启动慢、游戏加载卡顿与大文件传输延迟。本文基于三星9100 PRO的PCIe 5 0架构、14800MB s读取、13400MB s写入、2200K 2600K IOPS、1TB~8TB容量、第八代V-NAND与5nm主控、镍涂层散热与DTG技术、散热片版适配及魔术师软件,提供选购判断与安装兼容性要点,帮助读者评估是否值得一步到位升级。

宁德时代2026年中期分红61.8亿元,同比增35%,创历史新高
业界动态 · 2026-09-01

宁德时代2026年中期分红61.8亿元,同比增35%,创历史新高

宁德时代发布2026年中期分红方案,总额达61 8亿元,同比增长35%。本文梳理分红具体安排、历史对比、业绩支撑及分红机制,帮助投资者评估公司现金流实力与股东回报策略。

企业硬盘报废销毁合规指南:如何选择专业机构与处理流程
业界动态 · 2026-08-31

企业硬盘报废销毁合规指南:如何选择专业机构与处理流程

企业硬盘报废面临数据复原与合规风险,需选择具备资质且流程透明的专业机构。本文解析行业乱象,介绍以团体标准为核心的合规销毁流程,涵盖上门收运、消磁粉碎、视频溯源及尾料处置,帮助企业规避泄密责任,确保数据安全闭环。

机密文件销毁找什么机构?认准团标参编与资质合规
业界动态 · 2026-08-31

机密文件销毁找什么机构?认准团标参编与资质合规

机密文件销毁找什么机构?核心在于甄别服务商是否具备正规保密资质及是否参与行业标准制定。本文解析《商业秘密及敏感信息载体销毁通用规范》团标要求,提供筛选销毁机构的实操指南,帮助企业规避数据泄露风险,确保销毁流程合规可溯。

影石Insta360 X6全球首销登顶:8K全景画质与AI创作功能解析
业界动态 · 2026-08-31

影石Insta360 X6全球首销登顶:8K全景画质与AI创作功能解析

影石Insta360 X6全球同步发售即登顶国内外主流平台销量榜首。本文解析其搭载的索尼定制方形大底传感器、4nm AI三芯架构及8K50fps画质,详解3D时光舱、AI导演等独家功能,探讨全景相机从专业工具向大众智能创作设备的演进趋势。