侧边栏壁纸
博主头像
行迹小栈

即使明天我们的手脚都会折断,但是我们的衣领和袖口,依然笔挺!

  • 累计撰写 109 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

Python-docx

Administrator
2024-08-01 / 0 评论 / 0 点赞 / 11 阅读 / 0 字 / 正在检测是否收录...

对象方法简介

在Python中,使用 python-docx库来处理Word文档,可以使用一系列的对象和方法来创建、编辑和操作文档。以下是对这些对象和一些关键方法的总结:

  1. Document
    • add_heading(text, level):添加一个标题,其中 text是标题文本,level是标题级别(1-9)。
    • 创建一个空文档或加载一个已存在的文档。
    • add_paragraph(text):添加一个段落,其中 text是段落文本。
    • add_picture(path, width=None, height=None, start=None):添加一个图片,其中 path是图片的路径,widthheight是可选的图片大小。
    • save(filename):保存文档到文件,其中 filename是保存的文件名。
  2. Paragraph
    • 代表文档中的一个段落。
    • style:段落的样式。
    • alignment:段落的对齐方式。
    • text:段落的文本内容。
    • runs:段落中的文本运行列表,每个运行可以有不同的样式或属性。
  3. Run
    • 代表段落中的一个文本运行。
    • text:运行的文本内容。
    • font:运行的字体样式。
    • bold:是否加粗。
    • italic:是否斜体。
    • underline:下划线样式。
    • color:文本颜色。
    • size:字体大小。
  4. Font
    • 代表字体样式。
    • name:字体名称。
    • size:字体大小。
    • bold:是否加粗。
    • italic:是否斜体。
    • underline:下划线样式。
    • color:文本颜色。
  5. Table
    • 代表表格。
    • add_row():添加一个新行。
    • cells:表格的单元格列表。
    • cell:根据行和列索引获取单元格。
    • rows:表格的行列表。
    • row:根据行索引获取行。
    • columns:表格的列列表。
    • column:根据列索引获取列。
  6. Cell
    • 代表表格中的一个单元格。
    • paragraphs:单元格中的段落列表。
    • add_paragraph(text):在单元格中添加一个段落。
    • merge():合并单元格。
    • merge_right():向右合并单元格。
    • merge_down():向下合并单元格。
  7. Part
    • 代表文档的一部分,如样式、内容等。
    • get_style_id(style_or_name, style_type):根据样式名称或ID获取样式ID。
    • add_style(name, style_type):添加一个新样式。
  8. Styles
    • 代表文档中的样式集合。
    • add_style(name, style_type):添加一个新样式。
    • get_style_id(style_or_name, style_type):根据样式名称或ID获取样式ID。
  9. TableStyle
    • 代表表格样式。
    • name:样式名称。
    • table:关联的表格。
    • alignment:对齐方式。
    • border:边框样式。
    • cell_margins:单元格边距。
    • table_margins:表格边距。
    • background:背景色。
      这些对象和方法提供了足够的灵活性来创建和编辑Word文档。您可以根据需要组合和使用它们来创建复杂的文档结构。

使用教程

添加标题 设置段落

添加标题,设置段落行间距、缩进、对齐方式等

from docx import Document   #用来建立一个word对象
from docx.shared import Pt  #用来设置字体的大小
from docx.enum.text import WD_ALIGN_PARAGRAPH  #设置对其方式
from docx.shared import Inches

# 创建文档对象
doc = Document('测试.docx')

# 如果报错 KeyError: "no style with name 'Heading 1'" 那就打开这个文档,将这些标题样式使用一遍,或者新建
# doc.add_heading(text="这是标题", level=0)           # 标题等级(level)默认是1,对应“标题1”,如果设置为0,对应“标题”
title1 = doc.add_heading(text="这是一级标题", level=1)
title1.alignment = WD_ALIGN_PARAGRAPH.CENTER            # 设置为居中对齐
title1.paragraph_format.space_before = Pt(0)            # 设置段前 0 磅
title1.paragraph_format.space_after = Pt(0)             # 设置段后 0 磅
title1.paragraph_format.line_spacing = 1.5              # 设置行间距为 1.5
title1.paragraph_format.left_indent = Inches(4)         # 设置左缩进 1英寸
title1.paragraph_format.right_indent = Inches(0)        # 设置右缩进 0.5 英寸

doc.save('demo.docx')

添加标题 设置段落 设置字体格式

添加标题为空,然后使用run向标题里插入文字,既可以设置段落 也可以 设置字体格式

from docx import Document   #用来建立一个word对象
from docx.shared import Pt  #用来设置字体的大小
from docx.enum.text import WD_ALIGN_PARAGRAPH  #设置对其方式
from docx.oxml.ns import qn  #设置字体
from docx.shared import RGBColor  #设置字体的颜色

# 添加一个三级标题,内容为空
para_heading = doc.add_heading('',level=3)
para_heading.alignment = WD_ALIGN_PARAGRAPH.CENTER            # 设置为居中对齐
para_heading.paragraph_format.line_spacing = 1.5              # 设置行间距为 1.5

# 然后使用run模块对该标题添加文字,处理该文字的字体、大小、颜色等
run = para_heading.add_run(u"前言")
run.font.name = u'宋体'
run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')        # 设置为宋体,和上边的一起使用
run.font.size = Pt(12)        # 设置1级标题文字的大小为“小四” 为12磅
run.font.color.rgb = RGBColor(255,0,0)        # 设置颜色为红色

doc.save('demo.docx')

全局正文和标题的格式设置

以上方式都是对与单独标题和段落设置的

下面是设置全局的 正文和标题 的 字体和段落格式

from docx import Document   #用来建立一个word对象
from docx.shared import Pt  #用来设置字体的大小
from docx.enum.text import WD_ALIGN_PARAGRAPH  #设置对其方式
from docx.oxml.ns import qn  #设置字体
from docx.shared import RGBColor  #设置字体的颜色


# 设置全局的 正文和标题 的 字体和段落格式
doc.styles["Normal"].font.name = u"宋体"                      # 设置全局正文字体
doc.styles["Normal"]._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
doc.styles["Normal"].font.size = Pt(29)                      # 设置正文全局大小为29
doc.styles["Normal"].font.color.rgb = RGBColor(255, 0, 0) # 设置正文全局颜色为红色


doc.styles["Heading 2"].font.size = Pt(29)                    # 设置全局二级标题的字体大小为29
doc.styles["Heading 2"].font.name = u'微软雅黑'                 # 设置全局的二级标题的字体
doc.styles["Heading 2"]._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
doc.styles["Heading 2"].font.color.rgb = RGBColor(100, 0, 0) # 设置二级标题全局颜色

# 添加正文
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER            # 设置为居中对齐
r = p.add_run("测试正文样式")   # 这个段落使用的是Normal的样式

# 添加标题
para_heading = doc.add_heading('',level=2)    # 添加一个二级标题,标题也相当于一个段落
run = para_heading.add_run(u"测试标题样式")           # 这个使用的是"Heading 2" 的样式

doc.save('demo.docx')

插入段落

from docx import Document   #用来建立一个word对象

# 创建文档对象
doc = Document('测试.docx')


paragraph1 = doc.add_paragraph("这是第1个段落")
paragraph2 = doc.add_paragraph("这是第2个段落")

# 在paragraph2这个段落的前面插入一个段落
paragraph2.insert_paragraph_before("额外插入的段落文字")
doc.save("demo.docx")

读取打印所有内容

# 创建文档对象
doc = Document('测试.docx')

# 遍历文档的每一个段落
for para in doc.paragraphs:
    print(para.text)
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区