Python操作Excel与CSV自动化实战_Openpyxl与Pandas技巧


Python处理Excel和CSV应选对工具:Pandas擅长数据清洗分析与批量转换,Openpyxl专注Excel样式与结构控制;二者常组合使用——Pandas处理数据后,Openpyxl美化输出。

Python处理Excel和CSV文件,核心是选对工具:Openpyxl适合精细控制Excel格式(如样式、公式、多表操作),Pandas更适合数据清洗、分析和批量转换。两者常配合使用——用Pandas做计算和结构化处理,用Openpyxl写回带样式的Excel报告。

用Pandas高效读写CSV与Excel基础表

Pandas的read_csv()read_excel()能自动推断数据类型,跳过空行,指定列名;to_csv()to_excel()支持索引控制、日期格式、编码设置。注意CSV默认用逗号分隔,中文环境建议加encoding='utf-8-sig'避免Excel乱码。

  • 读取带标题的CSV:pd.read_csv("data.csv", encoding='utf-8-sig')
  • 读取Excel多个sheet:pd.read_excel("report.xlsx", sheet_name=None)返回字典,key为sheet名
  • 写入多个DataFrame到不同sheet:with pd.ExcelWriter("output.xlsx") as writer: df1.to_excel(writer, "Sheet1"); df2.to_excel(writer, "Sheet2")

用Openpyxl精准控制Excel样式与结构

Openpyxl不解析公式结果,但能读写公式、冻结窗格、设置字体/边框/填充色、调整行列宽高。它适合生成管理报表、财务模板等需严格格式的文件。注意:Openpyxl不能直接处理CSV,也不擅长大数据量计算——先用Pandas处理好数据,再用Openpyxl“美化”输出。

  • 给单元格加粗+居中:ws['A1'].font = Font(bold=True); ws['A1'].alignment = Alignment(horizontal="center")
  • 设置整列宽度:ws.column_dimensions['B'].width = 15
  • 写入公式(字符串形式):ws['C1'] = "=A1+B1"

实战组合:Pandas清洗 + Openpyxl出报告

典型流程:用Pandas加载原始数据→去重、填充缺失、计算新列→分组聚合→导出为Excel临时文件→用Openpyxl打开该文件,添加标题、样式、页眉页脚、打印区域。这样既发挥Pandas的数据处理能力,又保留Excel的专业呈现效果。

  • 例如销售汇总:Pandas按地区求和并排序后,用to_excel("temp.xlsx", index=False)保存
  • 再用Openpyxl打开temp.xlsx,插入公司Logo图片、设置第一行为冻结行、添加页眉“2025年Q3销售报告”
  • 最后另存为正式文件,原临时文件可删除

避坑提醒:编码、日期、大文件处理

CSV中文乱码多数因未指定encoding;Excel中日期在Pandas里常变成datetime64,写入Openpyxl前建议转成字符串或用dt.strftime()格式化;单表超10万行慎用Openpyxl(内存高、速度慢),优先用Pandas+CSV流式处理,或改用xlsxwriter引擎(pd.ExcelWriter(..., engine="xlsxwriter"))提升写入性能。

  • 统一日期格式写法:df["date"] = pd.to_datetime(df["date"]).dt.strftime("%Y-%m-%d")
  • 大文件分块读取CSV:for chunk in pd.read_csv("big.csv", chunksize=5000): process(chunk)
  • 避免Openpyxl内存溢出:不用load_workbook(data_only=False)反复读写同一文件,处理完及时wb.close()


# excel  # python  # go  # 编码  # 大数据  # 工具  # 中文乱码  # csv  # 数据清洗  # csv文件 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: PHP 中如何在函数内持久修改引用变量所指向的目标  mac怎么安装字体_MAC添加第三方字体与字体册管理【教程】  Windows 10怎么把任务栏放在屏幕上方_Windows 10解锁任务栏并拖动位置  Windows10如何查看蓝屏日志_Win10使用事件查看器分析Dump文件  Win11怎样安装企业微信_Win11安装企业微信教程【步骤】  Python代码测试策略_质量保障解析【教程】  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Win11怎么关闭自动调节亮度_Windows11禁用内容自适应亮度  Windows10怎么查看系统激活状态_Windows10激活状态查看方法【教程】  C#如何序列化对象为XML XmlSerializer用法  如何在Golang中处理JSON字段缺失_Golangjson解析字段校验方法  如何使用Golang指针与接口结合_实现方法调用和动态类型  php本地部署后session无法保存_session存储路径与权限设置技巧【技巧】  获取 PHP 文件最后修改时间的正确方法  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  微信JSAPI支付回调PHP怎么接收_处理JSAPI异步通知数据方法【指南】  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Drupal 中 HTML 链接被重复转义导致渲染异常的解决方案  Win11怎么设置默认终端应用_Windows11开发者选项终端  如何从 Go 的 map[string]interface{} 中安全获取值  Flask 表单数据通过 SMTP 发送邮件的完整实现教程  Win11怎么连接投影仪_Win11多显示器投屏设置指南【步骤】  如何使用Golang实现容器自动化运维_Golang Docker运维管理方法  Windows怎样关闭开始菜单广告_Windows关闭开始菜单广告设置【步骤】  Win11局域网共享怎么设置 Win11文件夹网络共享教程【详解】  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  C#如何使用Channel C#通道实现异步通信  Windows10系统怎么查看CPU核心数_Win10逻辑处理器数量查看  微信短链接怎么还原php_用浏览器开发者工具抓包获取【方法】  Mac电脑如何恢复出厂设置_Mac抹掉数据并重装系统【安全指南】  PHP cURL GET请求:正确设置认证与自定义请求头的完整教程  小程序里php怎么变mp4_小程序调用php生成mp4视频方法【教程】  Python脚本参数接收_sys与argparse解析【指导】  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Linux如何使用grep搜索文件内容_Linux下正则表达式匹配与查找技巧【指南】  如何使用Golang开发简单的聊天室消息存储_Golang WebSocket数据持久化方法  PHP主流架构怎么集成Redis缓存_配置步骤【方法】  Win11声音忽大忽小怎么办 Win11音频增强功能关闭教程【修复】  如何提升Golang JSON序列化性能_Golang JSON编码效率优化方法  如何使用Golang匿名函数_快速定义临时函数逻辑  Mac如何将HEIC图片格式转为JPG_Mac批量转换图片【指南】  Win11怎么更改任务栏位置_修改注册表将Win11任务栏置顶【教程】  Win11怎么修复系统文件_使用sfc命令修复Win11系统【技巧】  Win10如何备份注册表_Win10注册表备份步骤【攻略】  Windows电脑如何进入安全模式?(多种按键方法)  Win11怎么设置虚拟内存最佳大小_Windows11性能选项自定义分页文件  windows系统找不到无线网络怎么办_windows WLAN适配器故障排查  如何用正则与预处理结合精准拦截拼接式垃圾域名  Golang如何避免指针逃逸_Golang逃逸分析与堆栈优化策略  如何高效识别并拦截拼接式恶意域名 spam 

 2026-01-04

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.