Python 在Word中创建表格并填入数据、图片

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

Python Word 库:

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

python 复制代码
pip install Spire.Doc

示例代码1:使用Python在Word中创建表格并填充数据

python 复制代码
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库还提供了接口设置单元格样式等。

输出结果:

代码示例2:使用Python在Word表格中插入图片

python 复制代码
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() 方法插入图片。

输出结果:

Spire.Doc for Python库还支持对Word中的表格进行其他操作,如添加、删除复制行或列、合并或拆分单元格等。更多示例demo可查看:

Spire.Doc for Python 中文教程Spire.Doc for Python 是一款专业的 Python Word 开发组件,开发人员可以使用它轻松将 Word 文档的创建、读取、编辑和转换等功能集成到自己的 Python 应用程序中。作为一款完全独立的组件,Spire.Doc for Python 的运行环境无需安装 Microso...https://www.e-iceblue.cn/docforpython/spire-doc-for-python-program-guide-content.html

对于水印问题,可以点击申请临时授权移除,或者发送邮件到sales@e-iceblue.com。

相关推荐
小咖自动剪辑4 小时前
Base64与图片互转工具增强版:一键编码/解码,支持多格式
人工智能·pdf·word·媒体
骆驼爱记录8 小时前
Excel邮件合并嵌入图片技巧
自动化·word·excel·wps·新人首发
GiantGo1 天前
一键导出PPT备注到Word
word·powerpoint·导出备注
初九之潜龙勿用1 天前
C# 操作Word模拟解析HTML标记之背景色
开发语言·c#·word·.net·office
大三开学菜鸟1 天前
Word 字符数精确统计工具
word
骆驼爱记录1 天前
Word题注编号间距调整4种方法
自动化·word·excel·wps·新人首发
AAA_搬砖达人小郝1 天前
Markdown 一键生成完美 Word(.docx) + PDF 的完整实战方案(JDK 8 环境亲测可用)
pdf·word
DS随心转插件2 天前
Gemini怎么生成word
人工智能·word·ds随心转
缺点内向2 天前
在 C# 中为 Word 段落添加制表位:使用 Spire.Doc for .NET 实现高效排版
开发语言·c#·自动化·word·.net
星月前端2 天前
springboot中使用LibreOffice实现word转pdf(还原程度很高,可以配置线程并发!)
spring boot·pdf·word