当前位置:

首页 > 编程开发 > 如何将Excel表格数据批量填充到Word文档表格中

如何将Excel表格数据批量填充到Word文档表格中

这篇文章就来聊聊如何用Python把Excel数据批量填到Word表格里,重点解决新手常碰到的类型错误和循环逻辑问题,还会附上可直接运行的代码。 在自动化办公的日常里,经常需要把结构化数据(比如订单明细、报价单)从Excel搬到Word模板里。用pandas加上python-docx这套组合拳,就能

这篇文章就来聊聊如何用Python把Excel数据批量填到Word表格里,重点解决新手常碰到的类型错误和循环逻辑问题,还会附上可直接运行的代码。

在自动化办公的日常里,经常需要把结构化数据(比如订单明细、报价单)从Excel搬到Word模板里。用pandas加上python-docx这套组合拳,就能高效、可靠地搞定跨格式数据填充。

核心问题出在哪里?

之前有读者反馈,代码报错 TypeError: list indices must be integers or slices, not str。这到底是怎么回事?

  • 根本原因在于:df.to_dict("records") 返回的是字典列表,比如 [{"ORDER": "ORD001", ...}, {...}],而不是单个字典;
  • 但代码里却直接用了 sda["ORDER"],试图用字符串去索引这个列表,自然就报错了;
  • 同时,嵌套遍历 rows.cells 再手动索引每个单元格,既冗余又容易出错。

正确的实现方式

正确的思路是行级一一映射:把Word表格的每一行和Excel DataFrame的每一行记录对齐,然后用 zip() 配对处理:

import pandas as pd
from docx import Document
from pathlib import Path

base_dir = Path(__file__).parent
word_template_path = base_dir / "WordTemplate.docx"
excel_path = base_dir / "ExcelSource.xlsx"
output_dir = base_dir / "OUTPUT"
output_dir.mkdir(exist_ok=True)

# 读取Excel数据(指定工作表)
df = pd.read_excel(excel_path, sheet_name="Feuil2")

# 转为字典列表:每条记录对应一行Excel数据
records = df.to_dict("records")

# 加载Word模板
doc = Document(word_template_path)
table = doc.tables[0]  # 假设目标表格为第一个表格

# 按行配对:Word表格行 ↔ Excel记录
for row, record in zip(table.rows, records):
    # 确保列数匹配(避免IndexError)
    if len(row.cells) < 7:
        raise ValueError(f"Word表格第{table.rows.index(row)+1}行单元格数量不足7列,无法映射ORDER/ITEM/Q1/Q2/PRICE/TVA/TOTAL字段")

    # 逐列填入值(自动转为字符串,兼容数字/日期等类型)
    row.cells[0].text = str(record.get("ORDER", ""))
    row.cells[1].text = str(record.get("ITEM", ""))
    row.cells[2].text = str(record.get("Q1", ""))
    row.cells[3].text = str(record.get("Q2", ""))
    row.cells[4].text = str(record.get("PRICE", ""))
    row.cells[5].text = str(record.get("TVA", ""))
    row.cells[6].text = str(record.get("TOTAL", ""))

# 保存结果
output_path = output_dir / "FilledDocument.docx"
doc.sa ve(output_path)
print(f"✅ 数据已成功写入:{output_path}")

几个必须注意的细节

  • ✅ 字段名严格匹配:Excel列标题(比如"ORDER")必须和代码里的 record.get("ORDER") 完全一致,大小写也要小心;
  • ✅ 行列数量对齐:Word表格的行数要 ≥ Excel记录数;如果记录更多,可以用 itertools.islice() 或者循环追加新行;
  • ✅ 空值安全处理:用 .get("KEY", "") 代替直接索引,能有效防止KeyError;
  • ✅ 格式兼容性:.text 属性只接受字符串,所以统一用 str() 转换,数值、日期等类型都会被正确格式化显示;
  • ⚠️ 不支持合并单元格:python-docx 对跨行、跨列合并这类复杂表格支持有限,模板里最好用标准的单单元格结构。

按照这个思路,就能稳定、清晰地完成Excel到Word表格的数据迁移,批量生成文档的效率会大幅提升。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Word文档
相关文章 更多
Mac怎么设置定时关机前自动保存所有Word文档
Mac怎么设置定时关机前自动保存所有Word文档

MacBook需三重防护防丢稿:开启系统级关闭提示、为Word等应用启用自动恢复与后台保存(设2分钟间隔)、用快捷指令实现关机前5分钟弹窗并自动保存文档。你打算让Mac每晚11点自动关机,却又担心正在Word里编辑的文档还没来得及点“保存”就因断电而丢失——系统不会自动帮你保存,但可以强制你在关机前

PDF怎么转换成Word文档?转换后如何检查排版?
PDF怎么转换成Word文档?转换后如何检查排版?

如果PDF里的内容还得继续修改、微调,直接用极轻PDF(pdf.cn)转成Word,后续编辑通常会更方便一些。转完之后别急着交稿,最好逐页对照原文件仔细检查一遍,尤其要盯紧表格、图片、页眉页脚,以及分栏排版这几处,看看有没有出现错位或丢失。 在线把PDF转换成Word 步骤一:进入PDF转Word工

批量Word怎么转PDF?Word文档如何批量转PDF?
批量Word怎么转PDF?Word文档如何批量转PDF?

手里如果攒了不少Word文档,需要批量转成PDF,后面不管是统一分发,还是集中归档,都会省事很多。这里整理了3种完整可落地的操作方法,同时也把几个特别容易被忽略的检查重点一并说清楚,比如大文件处理、复杂表格显示,以及图片清晰度这些关键细节。 方法一:用极轻PDF转换Word极轻PDF(pdf.cn)

如何用Word将多个Word文档合并成一个
如何用Word将多个Word文档合并成一个

在日常的工作和学习中,我们常常会面临这样的情况:多个word文档里的内容,像分章节写的论文初稿、各部门交上来的项目报告、零散整理的培训资料等,需要合并成一个完整的文档,以便于统一排版和分享转发。很多人习惯通过复制粘贴的方式逐个迁移,可这样做不仅效率低,还容易出现漏内容、错顺序的问题。接下来,就给大家

第一试卷网题库网址
第一试卷网题库网址

第一试卷网题库网址是https://www.shijuan1.com/,覆盖小学至高中全学段、多学科、多版本试卷,支持免注册下载Word文档,含答案与评分标准,适配教学与备考需求。 第一试卷网的网址在哪?这确实是很多老师和学生近期都在寻找的答案。今天,我们就来系统地梳理一下这个资源库的核心价值和使用

Word文档里的标题导航不按照逻辑排序
Word文档里的标题导航不按照逻辑排序

Word标题导航窗格混乱?速查并修正大纲级别 你是否遇到过这种困扰:在Word里打开导航窗格,本想快速定位文档结构,却发现标题顺序混乱不堪,有的跳级显示,有的根本没出现?这多半不是Word的错,而是文档中标题段落的“大纲级别”设置出了岔子。导航窗格认的可不是字体大小或加粗效果,它只遵循这个底层的逻辑

Word文档怎样使用Alt+Ctrl+T快速输入商标符号
Word文档怎样使用Alt+Ctrl+T快速输入商标符号

在Word中,按Alt+Ctrl+T可快速输入™商标符号。若快捷键无效,通过“插入”菜单的“符号”功能(子集选“拉丁语-1增补”)找到™插入。注意区分™(商标)与®(注册商标),两者法律意义不同,避免混用。

C#实现快速比较Word文档并显示差异
C#实现快速比较Word文档并显示差异

工作里最让人头疼的事之一,莫过于拿到一份被别人改过的文档,却不知道到底改了哪里。尤其是合同、报告这类多版本来回流转的文档,手动拖拽去翻页,肉眼去扫每一处变化——不仅眼睛累,心情也容易崩。更麻烦的是,如果文档里还夹着表格、图片或者复杂的格式排版,人工比对基本上很难做到百分百准确。 所以,通过代码来自动

使用C#代码在Word文档中设置段落缩进
使用C#代码在Word文档中设置段落缩进

Word文档段落缩进包括左、右、首行和悬挂缩进。通过C#借助Spire.Doc库,利用ParagraphFormat类的LeftIndent等属性设置各缩进值,实现批量文档的自动化格式处理,提升效率。

苹果手机如何将备忘录导出为Word文档
苹果手机如何将备忘录导出为Word文档

苹果手机备忘录无法直接导出Word文档,可通过Pages中转(保留格式)、邮件附件封装(简单文本)、iCloud网页端协作(多人编辑)或OCR识别(图片文字)这四种方法实现,并适配不同内容长度、格式复杂度与设备环境,用户可按需选用。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Adobe Acrobat Pro macOS版
Adobe Acrobat Pro macOS版
Mac

Adobe Acrobat Pro 是面向办公、法务、财务、教育及出版用户的专业PDF处理软件,可在Mac上创建、编辑、转换、合并和保护文档,并提供OCR文字识别、表单、批注、内容比较、敏感信息遮盖及电子签名功能。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

Shapr3D macOS版
Shapr3D macOS版
Mac

Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。

WINDOWS 更多
AutoCAD Windows版
AutoCAD Windows版
Windows

AutoCAD 是 Autodesk 推出的专业计算机辅助设计软件,Windows 版支持精确二维绘图、三维实体与曲面建模、图纸标注、布局发布和任务自动化,并包含多套行业专业化工具组合,适用于建筑、机械、电气、工程建设及制造设计人员。

Adobe Acrobat Pro Windows版
Adobe Acrobat Pro Windows版
Windows

Adobe Acrobat Pro 是面向专业 PDF 工作的综合解决方案,可在 Windows 中创建、编辑、转换、比较、整理和保护文档,并支持表单、电子签名、扫描件文字识别及敏感信息永久遮盖。订阅还包含网页、移动服务和云端协作能力,

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。