python创建文档

python创建文档

创建word文档

首先我们要安装会用到的三方库

在终端输入以下代码安装

pip install python-docx pillow

这里我们制作的word文档会涉及到图,我们将将要用到的图片保存在我们pycharm环境相同的路径里

from docx import Document
from docx.shared import Inches
from docx.document import Document as Doc

document = Document()  # type: Doc
# 添加一级标题
document.add_heading('开开心心学Python', 0)
# 添加带样式的段落
p = document.add_paragraph('Python是一门非常流行的编程语言, 它')
#紧跟着说一句添加文字
run = p.add_run('简单')
# 调节‘简单’两个字的,这里是加粗
run.bold = True
p.add_run(' 而且 ')
# 添加并且调节‘优雅’两个字,倾斜
p.add_run('优雅').italic = True
p.add_run('。')
#添加一个类似于表头的一段话,前面是内容,后面的‘level=1’是调节文字颜色
document.add_heading('Heading, level 1', level=1)
#这里是数入表头下的正文,前面是内容,后面是调节文字字体
document.add_paragraph('Intense quote', style='Intense Quote')

# 添加无序序列,用黑点表示序列
document.add_paragraph(
    'first item in unordered list(无序列表中的第一项)', style='List Bullet'
)
# 添加有序序列,用序号表示
document.add_paragraph(
    'first item in ordered list(有序列表中的第一项)', style='List Number'
)

# 将图片添加进去
document.add_picture('beautyful_gril.jpg', width=Inches(3.2))

#对图片的一个说明,将说明制作成表格形式,每一行有四列,可以添加多张图片,然后说明
records = (
    ('女朋友', '小芳', '03.15', '吃肉、喝酒、砸烟'),
    (7, '422', 'Eggs', 'sdf'),
    (4, '631', 'Spam, spam, eggs, and spam', 'we')
)
# 添加表格
document.add_section()
table = document.add_table(rows=1, cols=4)
# 添加表头
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '关系'
hdr_cells[1].text = '名字'
hdr_cells[2].text = '出生日期'
hdr_cells[3].text = '兴趣爱好'
# 将事先准备好的图片介绍说明依次添加加入列表即可
for qty, id_card, desc, hobby in records:
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id_card
    row_cells[2].text = desc
    row_cells[3].text = hobby

document.add_page_break()

document.save('demo2.docx')

批量生产样本文章

这里我们要制作的样本文章其实就是将关键字替换

类似于如下

*离职证明*

兹证明{name},身份证号码:{id},于{sdate}至{edate}在我单位{department}部门担任{position}职务,在职期间无不良表现。因个人原因,于{edate}起终止解除劳动合同。现已结清财务相关费用,办理完解除劳动关系相关手续,双方不存在任何劳动争议。

特此证明!

我们将需要的内容填写进去即可

from docx import Document
from docx.document import Document as Doc

# 准备一个列表,也可以是多个列表但是都是,以字典为元素,元素是键和值就是文本文件需要改写的地方和改写内容
employees = [
    {'name': '李元芳',
     'id': '234534675432435634',
     'sdate': '2020年5月21日',
     'edate': '2021年8月12日',
     'department': '人事部',
     'position': '扫厕所',

    }
]

# 将文本文件读取出来
for emp_dict in employees:
    doc = Document('离职证明模板.docx')  # type: Doc
    # 将文本文件一段一段的循环
    for p in doc.paragraphs:
        # 查找这一段里是否存在需要替换的对象
        if '{' not in p.text:
            continue
         #将文本文件的每一段再一个字节一个字节的循环
        for run in p.runs:
            # 查找这一字节里是否存在需要替换的对象
            if '{' not in run.text:
                continue
              # 如果存在,将花括号的前括号作为开始,后括号作为结束
            start, end = run.text.find('{'), run.text.find('}')
            # 将替换的内容与之替换即可
            key, place_holder = run.text[start + 1:end], run.text[start:end + 1]
            run.text = run.text.replace(place_holder, emp_dict[key])
    doc.save(f'{emp_dict["name"]}离职证明.docx')

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值