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
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇