openpyxl写入Excel的核心是创建/加载工作簿、获取工作表、通过坐标或行列赋值,必须调用wb.save()才能真正保存;支持新建、修改、批量写入及样式设置。

openpyxl 写入 Excel 表格的核心是:先创建或加载工作簿(Workbook),再获取工作表(Worksheet),最后通过单元格坐标(如 A1)或行列索引(如 row=2, column=3)赋值即可。不需要“保存”动作以外的额外提交步骤,但务必记得调用 wb.save() 才能真正写入文件。
创建新表格并写入数据
适合从零开始生成 Excel 文件:
- 用
Workbook()创建空白工作簿,默认带一个名为Sheet的工作表 - 用
ws['A1'] = '标题'或ws.cell(row=2, column=3, value='内容')写入单个单元格 - 支持直接写入数字、字符串、布尔值、日期(
datetime对象)、公式(以=开头的字符串) - 写完后必须调用
wb.save('output.xlsx'),否则数据只在内存中
加载已有表格并修改写入
适合在原文件基础上追加或更新内容:
一套面向小企业用户的企业网站程序!功能简单,操作简单。实现了小企业网站的很多实用的功能,如文章新闻模块、图片展示、产品列表以及小型的下载功能,还同时增加了邮件订阅等相应模块。公告,友情链接等这些通用功能本程序也同样都集成了!同时本程序引入了模块功能,只要在系统默认模板上创建模块,可以在任何一个语言环境(或任意风格)的适当位置进行使用!
- 用
load_workbook('data.xlsx')打开现有文件(注意:不能打开已打开的 Excel 文件,会报错) - 默认读取为“可编辑”模式,可直接修改单元格,例如
ws['B5'] = 100 - 若只需读取不修改,加参数
read_only=True可提升速度、节省内存 - 修改后仍需
wb.save('data.xlsx')—— 即使覆盖原文件也要显式保存
批量写入与样式控制(简要)
提升效率和可读性的小技巧:
- 写入二维列表可用
ws.append([1, 2, 3])追加一行;循环调用可写入多行 - 设置字体、对齐、边框等样式,需导入
from openpyxl.styles import Font, Alignment, Border, Side - 例如加粗:
ws['A1'].font = Font(bold=True);居中:ws['A1'].alignment = Alignment(horizontal='center') - 注意:样式操作不会自动应用到整列/整行,需逐单元格设置或用循环批量处理
基本上就这些。写入本身不复杂,但容易忽略保存、文件被占用、中文乱码(openpyxl 默认支持 UTF-8,一般无问题)这几个点。










