Python docx 文档开发 -【Python Office开发基础培训】

概述

你好! 这是你一篇学习docx的文档。代码从网上收集,然后修改添加自己的代码。
本学习笔记的

pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 也可以下载代码仓里的 setup.bat,运行安装docx

创建文档

代码地址:
https://gitee.com/bigearrabbit/kevinpython/blob/master/kevindocx/createDoc.py

函数 add_heading : 添加标题
函数 add_paragraph: 添加文本(段落)

# 文档对象添加标题
document.add_heading('吾十有五而志于学', 0)

# 正文 add_paragraph 文档对象添加文本(段落对象)
document.add_paragraph(u'子曰:“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩。”')

添加图片

代码地址:
https://gitee.com/bigearrabbit/kevinpython/blob/master/kevindocx/createDocPicture.py

函数 add_picture: 添加图片

# 文档对象添加标题
doc.add_picture('in/study.png', width=Inches(5.5))

设定格式,样式等

代码地址:
https://gitee.com/bigearrabbit/kevinpython/blob/master/kevindocx/createDocStructure.py

函数 add_paragraph: 第二个参数设定样式名称

doc.add_paragraph('吾十有五而志于学', 'Title')  # 标题
doc.add_paragraph(u'出处', 'Subtitle')  # 副标题
doc.add_paragraph(u'出自《论语·为政》', 'Body Text')  # Body Text

添加表格

代码地址:
https://gitee.com/bigearrabbit/kevinpython/blob/master/kevindocx/createDocTable.py

函数 add_table: 添加表格
函数 add_row: 添加行

table = doc.add_table(rows=1, cols=3)
....
# 遍历数据并添加内容
for id, age, action in records:
    row = table.add_row().cells
    row[0].text = str(id)
    row[1].text = age
    row[2].text = action

输出文件: ./out/createDocTable.docx
文档效果图

读取表格

代码地址:
https://gitee.com/bigearrabbit/kevinpython/blob/master/kevindocx/readDoc.py

doc.paragraphs: 获得段落列表

# 指定docx 文件路径
path = "in/2021-XX-XX 家默单.docx"
# 如果有输出文档,用这个测试:
# path = "out/createDocStructure.docx"

# 实例化docx 对象
doc = Document(path)
# 遍历输出docx 对象涉及段落
for p in doc.paragraphs:
    # 输出段落文本长度len(p.text)
    # 数据段落引用样式p.style.name
    # 文本:p.text
    print(len(p.text), ", ", p.style.name, ", ", p.text)
    # 会打印出乱码,这个需要在终端中输出,可能是正确的中文

批量修改页面为A5,设置页边距,设置页面尺寸

目的,把Word文档页面变小,页边距变小,用于小的Pad平板或阅读器上查看文档。方便学生进行作业浏览。
代码地址:
批处理程序:
https://gitee.com/bigearrabbit/kevinpython/blob/master/kevindocx/SetSectionBatch.py
封装的函数的程序
https://gitee.com/bigearrabbit/kevinpython/blob/master/kevindocx/kevindocx.py

通过遍历section,然后设定宽度和高度,页边距。
注意,页面需要同时设置width,height才能成功
docx中的长度单位特别,要用给定的函数来转换,例如
输入148mm用:shared.Mm(148)
输入1inches 用shared.Inches(1)

    for section in doc.sections:
        # size 需要同时设置width,height才能成功
        section.page_width = shared.Mm(148)
        section.page_height = shared.Mm(210)

        # left|right
        section.left_margin = shared.Mm(5)
        section.right_margin = shared.Mm(5)

        # top and bottom
        section.top_margin = shared.Mm(15)
        section.bottom_margin = shared.Mm(5)

遍历输入文件夹in目录,里面的docx文件都会进行页面修改,然后输出文件到 out目录下,
运行程序后,效果见文件: ./out/2021-XX-XX 家默单.docx

参考文章

Python3 集成python-docx 模块

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄鸭code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值