from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt # 磅数
from docx.oxml.ns import qn # 中文格式
import time
# 时间日期格式化
today = time.strftime("%Y{y}%m{m}%d{d}", time.localtime()).format(y="年", m="月", d="日")
# 控制台接收用户输入
price = input("上涨工资额度:")
# 创建(打开)一个word文档
document = Document()
# 设置默认字体
document.styles["Normal"].font.name = u"微软雅黑"
# 设置默认字号
document.styles["Normal"].font.size = Pt(14)
# 设置文档的基础字体
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
# 初始化建立第一个自然段
p1 = document.add_paragraph()
# 对齐方式为居中,没有这句默认左对齐
p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 这里是第一段的内容
run1 = p1.add_run("关于%s工资调整通知" % (today))
# 设置西文字体
run1.font.name = "微软雅黑"
# 设置中文字体
run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
# 设置字体大小为21磅
run1.font.size = Pt(21)
run1.font.bold = True
# 添加第二个自然段
p2 = document.add_paragraph()
# 在自然段里面添加内容
run2 = p2.add_run("张三同事: ")
# 这里是对客户的称呼
run2.font.name = "仿宋_GB2312"
# 设置中文字体
run2._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
# 设置字体大小
run2.font.size = Pt(16)
run2.font.bold = True
# 设置第三个自然段
p3 = document.add_paragraph()
run3 = p3.add_run(" 根据公司安排,为鼓励优秀员工,现将您的工资上调"+str(price)+"元,希望新年再接再厉。")
run3.font.name = "仿宋_GB2312"
run3._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run3.font.size = Pt(16)
run3.font.bold = True
#段落4
p4 = document.add_paragraph()
p4.alignment = WD_ALIGN_PARAGRAPH.RIGHT
run4 = p4.add_run("人事部: 石经理 电话:13901020304")
run4.font.name = "仿宋_GB2312"
run4._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run4.font.size = Pt(16)
run4.font.bold = True
# 保存文件
document.save("工资通知.docx")
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn # 中文格式
from docx.shared import Pt # 磅数
from docx.shared import Inches # 图片尺寸
import time
# 时间日期格式化
today = time.strftime("%Y{y}%m{m}%d{d}", time.localtime()).format(y="年", m="月", d="日")
# 控制台接收用户输入
price = input("请输入今日价格:")
# 要生成的用户表
company_list = ["客户中国航天集团", "客户深圳腾讯网络有限公司", "客户杭州阿里巴巴有限公司"]
# 循环遍历客户的用户名列表
for i in company_list:
# 创建(打开)一个word文档
document = Document()
# 设置默认字体
document.styles["Normal"].font.name = u"微软雅黑"
# 设置默认字号
document.styles["Normal"].font.size = Pt(14)
# 设置文档的基础字体
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
# 设置文档的基础样式
# 在文件最上头插入图片作为文件红头,宽度为6英寸
document.add_picture("d:/1.png", width=Inches(6))
p1 = document.add_paragraph()
# 初始化建立第一个自然段
p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 对齐方式为居中,没有这句默认左对齐
run1 = p1.add_run("关于下达%s产品价格的通知" %(today))
# 这里是第一段的内容
run1.font.name = "微软雅黑"
# 设置西文字体
run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')
# 设置中文字体
run1.font.size = Pt(21)
# 设置字体大小为21磅
run1.font.bold = True
# 设置加粗
p1.space_after = Pt(5)
# 设置段后距离5磅
p1.space_before = Pt(5)
# 设置段后距离5磅
p2 = document.add_paragraph()
run2 = p2.add_run(i + ": ")
# 这里是对客户的称呼
run2.font.name = "仿宋_GB2312"
run2._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run2.font.size = Pt(16)
run2.font.bold = True
p4 = document.add_paragraph()
run4 = p4.add_run(" 产品介绍:我司研发的基于250量子比特(由250个原子构成)的存储器,存储的数达2的250次方,比现有已知的宇宙中全部原子数目还要多。"
"无论在基础理论还是在具体算法上,量子计算都是超越性的。")
# 这里是对客户的称呼
run4.font.name = "仿宋_GB2312"
run4._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run4.font.size = Pt(16)
run4.font.bold = True
p3 = document.add_paragraph()
run3 = p3.add_run(" 根据公司安排,为提供优质客户服务,我单位现将价格通知如下。")
run3.font.name = "仿宋_GB2312"
run3._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run3.font.size = Pt(16)
run3.font.bold = True
table = document.add_table(rows=3, cols=3, style="Table Grid")
# 合并单元格
table.cell(0, 0).merge(table.cell(0,2))
table_run1 = table.cell(0,0).paragraphs[0].add_run("量子通信计算机产品报价表")
table_run1.font.name = u"隶书"
table_run1.font.bold = True
table_run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'隶书')
table.cell(0, 0).paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
#第一行0列
table.cell(1, 0).text = "日期"
table.cell(1, 1).text = "价格(万/每台)"
table.cell(1, 2).text = "备注"
table.cell(2, 0).text = today
table.cell(2, 1).text = str(price)
table.cell(2, 2).text = ""
#段落4
p4 = document.add_paragraph()
p4.alignment = WD_ALIGN_PARAGRAPH.CENTER
run4 = p4.add_run(" (联系人: 石经理 电话:13901020304) ")
run4.font.name = "仿宋_GB2312"
run4._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run4.font.size = Pt(16)
run4.font.bold = True
# 此页结束
document.add_page_break()
# 下一页开始
p5 = document.add_paragraph()
run4 = p5.add_run("此处是广告")
document.save("%s-价格通知.docx" % i)
# 读取word文档中的内容
from docx import Document
document = Document("工资通知.docx")
all_paragraphs = document.paragraphs
for p in all_paragraphs:
print(p.text)
import zipfile
# 把word文档解压
word_book = zipfile.ZipFile('客户中国航天集团-价格通知.docx')
# 获取文档下的document文件
xml = word_book.read('word/document.xml').decode('utf-8')
# 读取文件的w标签
xml_list = xml.split('<w:t>')
# 创建一个集合用户存放读出来的值
text_list = []
# 循环遍历标签
for i in xml_list:
# 判断便签是否是w标签
if i.find('</w:t>') + 1:
# 获取便签里面的内容并写入到集合
text_list.append(i[:i.find('</w:t>')])
else:
# 跳出循环
pass
# 把集合变成字符串
text = "".join(text_list)
# 输出字符串
print(text)
最后修改于 2021-03-29 21:54:07
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

