Python自动化办公之操作docx自动写作、生成总结

公布一段2021年写的自动写作小程序源码

代码使用python-docx库用于生成公文格式的小程序,包括页边距、字体、段落设置等,后续可以结合数据库开发、web开发等,读取所需要的数据,自动成生成阶段性总结。

首先安装docx库

pip install python-docx

代码:

#导入相关库
from docx import Document
#页边距的设置
from docx.shared import Cm
#设置居中效果
from docx.enum.text import WD_ALIGN_PARAGRAPH
#字体的设置
from docx.oxml.ns import qn
#字号的设置
from docx.shared import Pt,RGBColor,Inches
#时间的显示
import time
from datetime import datetime
import pytz

#实例化一个Word
Doc = Document()
#设置页面边距(上3.8,下3.5,左2.7,右2.6)
Doc.sections[0].top_margin = Cm(3.7)
Doc.sections[0].bottom_margin = Cm(3.5)
Doc.sections[0].left_margin = Cm(2.7)
Doc.sections[0].right_margin = Cm(2.6)

#标题的设置
#设置标题,居中对齐,方正小标宋简体。
p1=Doc.add_paragraph()
run1=p1.add_run("工作总结")
#标题字号的设置,22Pt为二号字体,16位三号字体
run1.font.size=Pt(22)
#设置字体
Doc.styles['Normal'].font.name="方正小标宋简体"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"方正小标宋简体")
#设置居中
p1.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER
#设置标题行间距
p1_format=p1.paragraph_format
p1_format.line_spacing=Pt(35)  

# #标题与正文之间加一个空行
# P_huanhang=Doc.add_paragraph(text='\r', style=None)  # 换行
# p_huanhang_format=P_huanhang.paragraph_format
# p_huanhang_format.line_spacing=Pt(21)  

#设置每一段的格式
p2 = Doc.add_paragraph()
run3=p2.add_run("这是这一段话的第一句,")
run4=p2.add_run("这是这一段的第二句话。")
#设置字体
Doc.styles['Normal'].font.name="仿宋_GB2312"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"仿宋_GB2312")
#设置字号
p2.style.font.size = Pt(16)
#设置行距28
p2_format=p2.paragraph_format
p2_format.line_spacing=Pt(28) 
#设置首行缩进2个字符
p2_format.first_line_indent=p2.style.font.size * 2



#落款,空两行,时间右对齐,名字右对齐同时向右缩进3个字符
#第一个空行,行距28
P_huanhang2=Doc.add_paragraph(text='\r', style=None)  # 换行
p_huanhang2_format=P_huanhang2.paragraph_format
p_huanhang2_format.line_spacing=Pt(28)  
# #第二个空行,行距28
# P_huanhang3=Doc.add_paragraph(text='\r', style=None)  # 换行
# p_huanhang3_format=P_huanhang3.paragraph_format
# p_huanhang3_format.line_spacing=Pt(28)  


#落款
p_luoluan=Doc.add_paragraph()
run_luokuan=p_luoluan.add_run("落款")
#标题字号的设置,22Pt为二号字体,16位三号字体
run_luokuan.font.size=Pt(16)
#设置字体
Doc.styles['Normal'].font.name="仿宋_GB2312"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"仿宋_GB2312")
#设置居中
p_luoluan.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
#设置落款行间距
p_luoluan_format=p_luoluan.paragraph_format
p_luoluan_format.line_spacing=Pt(28)  
#设置向右缩进三个字符
p_luoluan_format.right_indent=p_luoluan.style.font.size * 3
p_luoluan_format.space_after = Pt(0)
p_luoluan_format.left_indent = Pt(0)
p_luoluan_format.space_before = Pt(0)
# p_luoluan_format.right_indent = Pt(0)

#时间
tz = pytz.timezone('Asia/Shanghai') #东八区
t = datetime.fromtimestamp(int(time.time()),
    pytz.timezone('Asia/Shanghai')).strftime('%Y年%m月%d日')

#添加一个新的段落,之后将时间写入到新的段落中,设置右对齐,字符间距28,字体仿宋,三号字体
#时间为当前时间
p_time=Doc.add_paragraph()
run_time=p_time.add_run(t)
#标题字号的设置,22Pt为二号字体,16位三号字体
run_luokuan.font.size=Pt(16)
#设置字体
Doc.styles['Normal'].font.name="仿宋_GB2312"
Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),"仿宋_GB2312")
#设置向右对齐
p_time.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
#设置落款行间距
p_time_format=p_time.paragraph_format
p_time_format.line_spacing=Pt(28)  
p_time_format.space_after = Pt(0)
p_time_format.left_indent = Pt(0)
p_time_format.space_before = Pt(0)
p_time_format.right_indent = Pt(0)

#保存此文档
Doc.save("正式文档_1.docx")

运行此程序可在当前目录下生成名字为正式文档_1.docx的word文档
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值