使用 IRONXL FOR PYTHON

从Excel数据在Python中生成Word文档

查克尼特·宾
查克尼特·宾
2024年十二月15日
分享:

介绍

使用Python从Excel电子表格生成Word模板,能够在各种专业和个人环境中显著提高效率、准确性和展示效果。 通过利用自动化、定制化和数据完整性,专业人员可以确保他们的 Word 文档成为有效的交流工具,清晰准确地传达基本信息。 其中一个可以将Microsoft Excel转换为Microsoft Word的库是来自Iron SoftwareIronXL Python 包和python-docx库。

本文将探讨从 Excel 文件生成 Word 文档所需的步骤。

如何用 Python 从 Excel 数据生成 Word 文档

  1. 创建一个名为 excelToWord.py 的 Python 文件。

  2. 添加 IronXL 和 python-docx 软件包。

  3. 在项目文件夹中创建或添加 Excel 文件。

  4. 使用 IronXL.Excel 阅读 Excel 文档。

  5. 使用 python-docx 创建 Word 文档并插入 Excel 数据。

什么是IronXL?

IronXL for Python 是由 Iron Software 开发的一个强大库,允许开发者在 Python 项目中创建、读取和编辑 Excel 文件(XLS、XLSX 和 CSV)。 以下是使用 IronXL 的一些主要功能和优势:

主要功能

  1. 无需依赖 Excel: IronXL 无需在您的服务器上安装 Microsoft Excel,这使其在没有 Excel 的服务器环境中非常理想。

  2. 直观的 API:IronXL 提供用于处理 Excel 文件的自然且直观的 API,使其易于集成到您的 Python 项目中。

  3. 支持多种格式:IronXL 支持多种 Excel 文件格式,包括 XLS、XLSX、CSV 和 TSV。

  4. 单元格样式:您可以使用不同的字体、尺寸、背景、边框和数字格式来设置单元格样式。

  5. 公式处理:IronXL 能与 Excel 公式一起工作,并且每当编辑工作表时重新计算这些公式。

  6. 跨平台兼容性:IronXL 适用于 Windows、macOS、Linux、Docker、Azure 和 AWS。

什么是 python-docx

python-docx 是一个Python库,用于创建、修改和处理Microsoft Word文档,例如`.docx`文件。 它提供了与 Word 文档交互的简单 API,允许您执行添加文本、格式化、插入表格和图像等任务。

主要功能

1. 创建文档

您可以从头开始生成 Word 文档并添加内容,包括段落、表格、标题等。 此软件包还可用于编辑单个文档。

2. 文本操作

添加和修改文本段落。 使用“运行”(段落中具有不同样式的文本部分)来格式化文本(例如,加粗、斜体、下划线等)。 添加各级标题并使其风格化。

3. 添加表格

创建具有指定行数和列数的表格。 访问和修改表格中的单个单元格。

4. 列表

使用预定义样式创建带项目符号或编号的列表。

5. 使用样式

应用 "标题 1"、"正常 "等预定义样式。您还可以为段落或文本定义和应用自定义样式。

6. 插入图像

在文档的特定位置插入图片。 您可以通过指定宽度和高度来调整图片大小。

先决条件

在我们深入研究代码之前,请确保您具备以下先决条件:

  1. 已安装Python:确保您的计算机上已安装Python。您可以从Python的官方网站下载。

  2. IronXL 已安装:您需要安装 IronXL 包。 您可以使用 pip 来完成这项工作。

  3. 已安装python-docx:您需要安装python-docx包。 您可以使用 pip 来完成这项工作。

  4. Excel文件:创建一个包含数据的示例Excel文件。

第 1 步:创建一个名为 excelToWord.py 的 Python 文件

打开您最喜欢的集成开发环境(如 Visual Studio Code),创建一个名为 excelToWord.py 的文件

如何在 Python 中从 Excel 数据生成 Word 文档:图 1 - Excel 文档生成

第 2 步:添加 IronXL 软件包

使用 Pip 安装 IronXL 和 python-docx 软件包。

pip install IronXL python-docx

第 3 步:在项目文件夹中创建或添加 Excel 文件

将 Excel 示例文件复制到代码文件夹。 文件包含以下数据。

如何在Python中从Excel数据生成Word文档:图2 - 示例 Excel

第 4 步:使用 IronXL.Excel 阅读 Excel 文档

使用 IronXL 加载 Excel 文档,并使用以下代码读取所有单元格。

import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
PYTHON

步骤 5:使用 python-docx 创建 Word 文档并插入 Excel 数据

Word 文档的生成过程包括从以前的 Excel 数据读取创建 Word 文档。

doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx")
PYTHON

生成 Word 文档的完整代码在这里。

# Word documents from Excel data
import ironxl
from docx import Document
ironxl.License.LicenseKey = "your license"
workbook = ironxl.WorkBook.Load("sample.xlsx")
sheet = workbook.WorkSheets[0]
# read data from excel
data = []
# Iterate through rows and columns in the Excel sheet
for row in range(0, len(sheet.Rows)):
    row_data = []
    for col in range(0, len(sheet.Columns)):
        cell_value = sheet.GetCellAt(row, col)
        print(cell_value)
        row_data.append(cell_value)
    data.append(row_data)
# document generation process
doc = Document()
# Add a title to the Word document
doc.add_heading('Excel Data Export Using Python Docx', 0)
table = doc.add_table(rows=1, cols=len(data[0]))
hdr_cells = table.rows[0].cells
for i, header in enumerate(data[0]):
    hdr_cells[i].text = str(header)  # Add header cells
for row in data[1:]:
    row_cells = table.add_row().cells
    for i, cell in enumerate(row):
        row_cells[i].text = str(cell)
doc.save("sample.docx") # save as Microsoft Word document
PYTHON

代码解释

该 Python 脚本主要执行两项任务。

使用IronXL从Excel文件读取数据

  • 脚本首先为IronXL库设置许可证,该库用于在Python中处理Excel文件。
  • 然后加载一个Excel文件(sample.xlsx),并选择文件中的第一个工作表。
  • 脚本从工作表中读取数据,遍历所有行和列。 它从二维列表(data)中的每个单元格收集值,其中Excel表中的每一行对应于data中的一个子列表。
  • 单元格的值会在读取时打印到控制台。

2. 使用 python-docx 创建 Word 文档

  • 使用python-docx库创建一个新的Word文档。
  • 该脚本使用标题在文档顶部添加一个标题("Excel Data Export Using Python Docx")。
  • 然后,它在文档中创建一个表格,其中表格的第一行包含来自Excel工作表第一行的标题,后续行包含来自该Excel文件的相应数据。
  • 最后,Word 文档保存为 sample.docx。

    该脚本读取Excel文件(sample.xlsx)中的数据,对其进行处理,并将数据导出到新Word文档(sample.docx)中的表格中。 Excel 表的第一行用作表头,Excel 表中的每一行数据都作为表格中的一行添加到 Word 文档中。

输出

如何在Python中从Excel数据生成Word文档:图3 - Excel到Word

文字文件

如何从 Excel 数据生成 Word 文档 (Python):图 4 - Word 文档格式

IronXL 许可证(可试用)

IronXL 在代码所附的有效许可证文件上工作。 用户可以轻松地从许可页面获取试用许可证。

要使用许可证,请在使用 IronXL 库之前,将许可证如下放在代码中的某处。

ironxl.License.LicenseKey = "Your License Key"
PYTHON

结论

该示例代码演示了一种使用IronXLExcel文件中读取数据并使用python-docx将这些数据导出到Word文档的有效方法。 翻译过程包括两个主要步骤:

  1. 从Excel中提取数据:脚本加载一个Excel文件并从其第一个工作表中提取数据。 它可以遍历行和列,将单元格值收集到一个列表中,便于操作或保存。

  2. 创建和填充Word文档:使用python-docx库,脚本创建一个新的Word文档,添加标题,并将提取的Excel数据格式化为Word文档中的表格。 它能自动将 Excel 数据的第一行作为标题,将其余行作为表格数据。

    这种方法可以实现从 Excel 到 Word 的无缝数据传输,对于报告生成、数据导出或文档自动化等任务非常有用。 IronXL 处理 Excel 和 python-docx 对 Word 文档创建的结合为在 Python 中处理这些文件格式提供了一个强大的解决方案。

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
< 前一页
如何用 Python 创建 Excel 文件
下一步 >
如何用 Python 从 Excel 文件中删除工作表

准备开始了吗? 版本: 2025.4 刚刚发布

查看许可证 >