首页 > 技术文章 > docx把文字写入world

tomhu 2020-02-21 20:15 原文

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

price = input('请输入今日的价格:')
company_list = ['客户1','客户2','客户3','客户4']
# time对中文的支持较差
today1 = time.strftime('%Y{y}%m{m}%d{d}',time.localtime()).format(y='年',m='月',d='日')
# 获取今日时间,整理成(“年-月-日”)的格式
# print(today1)


for i in company_list:
    document = Document()
    document.styles['Normal'].font.name = u'宋体'
#   set 设置文档的基础字体

    document.styles['Normal'].element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
#     设置文档的基础中文字体

    p1 = document.add_paragraph()
#   callable 初始化建立第一个自然段
    p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
#     对齐方式为居中,没有这句话的默认左对齐
    run1 = p1.add_run('关于下达%s产品价格的通知' % (today1))
    run1.font.name = '微软雅黑'
    
#   set 设置西文字体
    run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑')
#   set 设置中文字体
    run1.font.size = Pt(21)
#     设置字体大小为21磅
    run1.font.bold = True
#   设置加粗
    p1.space_after = Pt(5)
#     设置段后距离为5磅
    p1.space_before = Pt(5)
#   set 设置段前距离为5磅

    p2 = document.add_paragraph()
    run2 = p2.add_run(i + ':')
#   set 这里是对客户的称呼
    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( '根据公司安排,为提供优质的客户服务,我单位拟定今日黄金价格为%s元,特此通知!'% price)
    run3.font.name = '仿宋_GB2312'
    run3.element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
    run3.font.size = Pt(16)
    run3.font.bold = True
    
    
    p4 = document.add_paragraph()
    p4.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run4 = p4.add_run( '(联系人:小胡   电话:18381095031)')
    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(r'C:\Users\13375\Desktop\python\%s-价格通知.docx' % i)
#     以“客户名-价格通知”作为文件名保存



推荐阅读