Python向Excel文件写入数据的四种常用方法详解

周末不加班
周末不加班
发布时间:2026-10-11| 5人浏览过
原创

本文梳理 Python 向 Excel 导入输出的四种核心路径。通过 openpyxl 实现单元格级精准读写,借助 xlsxwriter 完成报表排版与图表嵌入,利用 pandas 一键转换结构化数据集,并提供 win32com 的 Windows 本地交互脚本。附带关键参数说明与流程校验点,助力按需选型。

环境准备

在编写代码前,需通过终端安装对应第三方库。若尚未安装,可使用 pip 执行以下命令统一拉取:

pip install openpyxl xlsxwriter pandas pywin32

注意:pywin32 仅支持 Windows 系统,macOS 或 Linux 环境请优先使用前三种跨平台方案。

方法一:使用 openpyxl 库(单元格级读写)

第1步:创建工作簿并填充基础数据

目的:生成全新的 xlsx 文件并在指定坐标写入文本与数值。

入口与动作:调用 Workbook() 实例化对象,通过 wb.active 获取默认 Sheet,直接使用字典语法赋值。

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

ws['A1'] = '姓名'
ws['B1'] = '成绩'
ws['A2'] = '张三'
ws['B2'] = 90
ws['A3'] = '李四'
ws['B3'] = 85

wb.save('学生成绩.xlsx')

完成状态:当前目录生成同名文件,双击可在 Excel 中正常查看表格结构。

第2步:样式扩展(按需配置)

目的:为表头添加加粗、颜色或数字格式。

可引入 openpyxl.styles.Font 与 NumberFormat 对 ws["A1:B1"] 切片区域应用样式,适用于固定模板输出场景。

方法二:使用 xlsxwriter 库(图表与排版优先)

第1步:按行列索引写入二维数据集

目的:高效写入规整数据并预留绘图区间。

入口与动作:Workbook() 仅支持新建,不支持追加。使用 add_worksheet() 创建页面,write_row() 接受行号、列号与列表。

import xlsxwriter

workbook = xlsxwriter.Workbook('销售数据.xlsx')
worksheet = workbook.add_worksheet()

data = [
    ['月份', '销售额'],
    ['一月', 100],
    ['二月', 120],
    ['三月', 150],
]

for r, row_data in enumerate(data):
    worksheet.write_row(r, 0, row_data)

workbook.close()

第2步:生成嵌入式图表

目的:基于已写入数据自动绘制柱状图。

# 接上段逻辑继续
chart = workbook.add_chart({'type': 'column'})
chart.add_series({
    'name': '销售额',
    'categories': '=Sheet1!$A$2:$A$4',
    'values': '=Sheet1!$B$2:$B$4',
})
worksheet.insert_chart('D2', chart)
workbook.close()

完成状态:输出文件 D2 区域显示动态更新的柱形图,数据随源范围自动适配。

方法三:使用 pandas 库(批量结构化导出)

第1步:DataFrame 直出为 Excel

目的:将内存中的二维数据表一键转换为标准表格,省去逐格排版。

入口与动作:构造 pd.DataFrame 后调用 to_excel()。核心参数 index=False 可剔除左侧冗余索引列,sheet_name 指定工作表命名。

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五'],
    '年龄': [20, 25, 30],
    '城市': ['北京', '上海', '广州'],
}
df = pd.DataFrame(data)

df.to_excel('用户信息.xlsx', sheet_name='Sheet1', index=False)

完成状态:生成文件行列严格对齐,列顺序与字典定义一致,可直接对接下游业务系统。

方法四:使用 win32com 库(Windows 本地进程交互)

第1步:调用 COM 接口修改现有文件

目的:控制本机已安装的 Excel 程序,实现实时操作与 VBA 宏兼容。

风险提醒:该方式会拉起 EXCEL.EXE 后台进程。若调试中断未清理,可能导致进程驻留占用内存。务必使用 try...finally 保证退出。

import win32com.client as win32

excel = win32.Dispatch("Excel.Application")
excel.Visible = False

try:
    workbook = excel.Workbooks.Open(r"C:\已有文件.xlsx")
    worksheet = workbook.Sheets("Sheet1")
    
    worksheet.Cells(1, 1).Value = "新增记录"
    workbook.Save()
finally:
    workbook.Close(SaveChanges=True)
    excel.Quit()
    del excel

完成状态:原文件内容无损更新,指定单元格写入成功,进程安全释放。

简要总结

日常开发中,批量结构化数据导出首选 pandas;需精细控制单元格样式或依赖 VBA 兼容性时选 openpyxl;涉及复杂排版与内嵌图表推荐 xlsxwriter;仅当必须调用原生 Excel 桌面功能且处于 Windows 环境时才考虑 win32com。根据数据规模与业务诉求匹配对应工具即可高效完成任务。以上就是Python向Excel文件写入数据的四种常用方法详解的详细内容,更多关于Python数据处理与办公自动化的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。