Python实现在Word中创建表格并填入数据与图片

 更新时间:2024年03月11日 10:43:35   作者:E-iceblue  
在Word中,表格是一个强大的工具,本文主要为大家介绍了如何使用Python在Word中创建表格并填入数据、图片,以及设置表格样式等,感兴趣的可以了解下

在Word中,表格是一个强大的工具,它可以帮助你更好地组织、呈现和分析信息。本文将介绍如何使用Python在Word中创建表格并填入数据、图片,以及设置表格样式等。

Python Word库:

要使用Python在Word中创建或操作表格,需要先将Spire.Doc for Python这个第三方库安装到项目中.

pip install Spire.Doc

使用Python在Word中创建表格并填充数据

import math
from spire.doc import *
from spire.doc.common import *
 
# 创建Document对象
doc = Document()
 
# 添加一节
section = doc.AddSection()
 
# 创建一个表格
table = section.AddTable()
 
# 指定表格数据
header_data = ["商品名称", "单位", "数量", "单价"]
row_data = [ ["底板-1","件","20946","2.9"], 
                ["定位板-2","张","38931","1.5"], 
                ["整平模具-3","组","32478","1.1"], 
                ["后壳FD1042-4","组","21162","0.6"], 
                ["棍子-5","组","66517","1.2"]]
                
# 设置表格的行数和列数
table.ResetCells(len(row_data) + 1, len(header_data))
 
# 设置表格自适应窗口
table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)
 
# 设置标题行
headerRow = table.Rows[0]
headerRow.IsHeader = True
headerRow.Height = 23
headerRow.RowFormat.BackColor = Color.get_Orange()
 
# 在标题行填充数据并设置文本格式
i = 0
while i < len(header_data):
    headerRow.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle
    paragraph = headerRow.Cells[i].AddParagraph()
    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
    txtRange = paragraph.AppendText(header_data[i])
    txtRange.CharacterFormat.Bold = True
    txtRange.CharacterFormat.FontSize = 12
    i += 1
 
# 将数据填入其余各行并设置文本格式
r = 0
while r < len(row_data):
    dataRow = table.Rows[r + 1]
    dataRow.Height = 20
    dataRow.HeightType = TableRowHeightType.Exactly
    c = 0
    while c < len(row_data[r]):
        dataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle
        paragraph = dataRow.Cells[c].AddParagraph()
        paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
        txtRange =  paragraph.AppendText(row_data[r][c])
        txtRange.CharacterFormat.FontSize = 11
        c += 1
    r += 1
 
# 设置交替行颜色
for j in range(1, table.Rows.Count):
    if math.fmod(j, 2) == 0:
        row2 = table.Rows[j]
        for f in range(row2.Cells.Count):
            row2.Cells[f].CellFormat.BackColor = Color.get_LightGray()
 
# 保存文件
doc.SaveToFile("Word表格.docx", FileFormat.Docx2016)

以下示例通过Section.AddTable() 方法在Word文档中添加了一个表格,然后将列表中的数据填充到了指定的单元格。此外Spire.Doc for Python库还提供了接口设置单元格样式等。

输出结果:

使用Python在Word表格中插入图片

from spire.doc import *
from spire.doc.common import *
 
inputFile = "表格示例.docx"
outputFile = "插入图片到表格.docx"
 
# 创建Document对象
doc = Document()
 
# 加载Word文档
doc.LoadFromFile(inputFile)
 
# 获取文档中第一个表格
table = doc.Sections[0].Tables[0]
 
# 将图片添加到指定单元格并设置图片大小
cell = table.Rows[1].Cells[1]
picture = cell.Paragraphs[0].AppendPicture("python.png")
picture.Width = 80
picture.Height = 80
 
cell = table.Rows[2].Cells[1]
picture = cell.Paragraphs[0].AppendPicture("java.jpg")
picture.Width = 80
picture.Height = 80
 
# 保存结果文件
doc.SaveToFile(outputFile, FileFormat.Docx)
doc.Close()

从以上代码可以看出,要在Word表格中插入图片,需要先获取指定的单元格,然后使用TableCell.Paragraphs[index].AppendPicture() 方法插入图片。

输出结果:

以上就是Python实现在Word中创建表格并填入数据与图片 的详细内容,更多关于Python创建Word表格的资料请关注脚本之家其它相关文章!

相关文章

  • Python3使用正则表达式爬取内涵段子示例

    Python3使用正则表达式爬取内涵段子示例

    这篇文章主要介绍了Python3使用正则表达式爬取内涵段子,涉及Python正则匹配与文件读写相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • python数据化运营的重要意义

    python数据化运营的重要意义

    在本篇文章里小编给大家分享的是关于python数据化运营的重要意义,有兴趣的朋友们可以学习下。
    2019-11-11
  • OpenCV半小时掌握基本操作之边界填充

    OpenCV半小时掌握基本操作之边界填充

    这篇文章主要介绍了OpenCV基本操作之边界填充,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python中跳出循环的两种方法

    Python中跳出循环的两种方法

    在 Python 中,跳出循环通常指的是使用 break 语句来结束一个循环结构,比如 for 循环或 while 循环,当程序执行到 break 语句时,循环会立即终止,程序会继续执行循环后面的代码,本文给大家介绍了Python中跳出循环的两种方法,需要的朋友可以参考下
    2024-09-09
  • python中字典的常见操作总结1

    python中字典的常见操作总结1

    这篇文章主要介绍了python中字典的常见操作总结,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • Flask如何结合Jinja2模板引擎返回渲染后HTML

    Flask如何结合Jinja2模板引擎返回渲染后HTML

    在 Flask 中结合 Jinja2 模板引擎返回渲染后的 HTML 是核心功能之一,本文主要介绍了详细实现方法和最佳实践,有需要的小伙伴可以跟随小编一起学习一下
    2025-06-06
  • Python报错NameError: name ‘secrets‘ is not defined解决

    Python报错NameError: name ‘secrets‘ is not

    在使用Python进行安全编程时,我们经常需要使用secrets模块来生成安全的随机数,但是却遇到这个问题,本文主要介绍了Python报错NameError: name ‘secrets‘ is not defined解决,感兴趣的可以了解一下
    2024-06-06
  • python导入三方包的显示未解析的引用但是可以运行问题解决

    python导入三方包的显示未解析的引用但是可以运行问题解决

    如果 PyCharm 显示未解析的引用,有可能是因为您在代码中使用了未安装的库或者模块,或者是因为 PyCharm 没有正确配置解释器,这篇文章主要介绍了python导入三方包的显示未解析的引用但是可以运行问题的解决办法
    2025-12-12
  • Python爬虫使用代理IP的实现

    Python爬虫使用代理IP的实现

    这篇文章主要介绍了Python爬虫使用代理IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 基于Python绘制美观动态圆环图、饼图

    基于Python绘制美观动态圆环图、饼图

    这篇文章主要介绍了基于Python制作美观动态圆环图、饼图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论