zoukankan      html  css  js  c++  java
  • Python批量创建word文档(1)- 纯文字

    Python创建word文档,任务要求:小杨在一家公司上班,每天都需要给不同的客户发送word文档,以告知客户每日黄金价格。最后贴上自己的联系方式。代码如下:

     1 '''
     2     #python根据需求新建word文档
     3     #首先安装python-docx
     4     #任务需求,小杨在一家公司上班儿,每天都需要给客户发送当日黄金价格,内容如下
     5     ######################关于下达2020年11月11日的黄金价格通知########### -这是标题
     6     #然后是称呼,尊敬的XX,你好:
     7     #然后是正文内容:    根据公司安排,
     8 '''
     9 from docx import Document
    10 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    11 from docx.shared import Pt
    12 from docx.oxml.shared import qn
    13 import time
    14 from time import sleep
    15 import os
    16 
    17 #定义今日黄金价格
    18 price = input("请输入今日黄金价格:")
    19 #定义客户列表
    20 company_list = ['客户1','客户2','客户3','客户4','客户5','客户6','客户7','客户8','客户9','客户10']
    21 #定义日期
    22 today = time.strftime("%Y{y}%d{m}%m{d}",time.localtime()).format(y='',m='',d='')
    23 print(today)
    24 
    25 #开始循环客户列表
    26 for i in company_list:
    27     #开始新建文档
    28     document = Document()
    29     #设置文档默认样式
    30     document.styles['Normal'].font.name = u'宋体'
    31     #设置整个文档中文字体默认格式
    32     document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
    33 
    34     #新建自然段1,即文档标题
    35     p1 = document.add_paragraph()
    36     #设置自然段1居中对齐
    37     p1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
    38     #向自然段1添加内容
    39     run1 = p1.add_run("关于下达%s的黄金价格通知" % (today))
    40     #设置文字字体为微软雅黑
    41     run1.font.name = '微软雅黑'
    42     run1.font._element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑')
    43     #设置文字加粗
    44     run1.font.bold = True
    45     #设置文字大小
    46     run1.font.size = Pt(16)
    47     #设置段前段后距离
    48     p1.space_after = Pt(5)
    49     p1.space_before = Pt(5)
    50 
    51     #新建自然段2,即文档称呼,默认
    52     p2 = document.add_paragraph()
    53     p2.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #这段其实可以不用写,因为word文档默认格式就是靠左对齐
    54     #向自然段添加内容
    55     run2 = p2.add_run("尊敬的" + i + ":")
    56     #设置自然段的字体
    57     run2.font.name = '仿宋_GB2312'
    58     #设置中文字体格式
    59     run2._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
    60     #设置字体的大小
    61     run2.font.size = Pt(12)
    62     #设置字体加粗
    63     run2.font.bold = True
    64 
    65     #添加自然段3,即文档的通知内容
    66     p3 = document.add_paragraph()
    67     #设置自然段3的对齐方式
    68     p3.aligment = WD_PARAGRAPH_ALIGNMENT.LEFT #word文档本来的格式是靠左,这段其实可以不用写
    69     #向第三自然段添加内容
    70     run3 = p3.add_run('    根据公司安排,为提供更优质客户服务,我公司拟定今日黄金价格为%s,特此通知。' % price)
    71     #设置自然段3的字体
    72     run3.font.name = '隶书'
    73     #设置自然段3内容的中文字体格式
    74     run3._element.rPr.rFonts.set(qn('w:eastAsia'),u'隶书')
    75     #设置自然段3的字体大小
    76     run3.font.size = Pt(12)
    77     #设置自然段3内容字体为加粗
    78     run3.font.bold = True
    79 
    80     #添加自然段4,即联系方式
    81     p4 = document.add_paragraph()
    82     #设置自然段4靠右对齐
    83     p4.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
    84     #向自然段4添加内容
    85     run4 = p4.add_run('(联系人:小杨, 电话:188888888888)')
    86     #设置自然段4的内容的字体
    87     run4.font.name = '仿宋_GB2312'
    88     #设置第四自然段中文字体为仿宋
    89     run4._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
    90     #设置第四自然段字体加粗
    91     run4.font.bold = True
    92     #设置第四自然段字体大小
    93     run4.font.size = Pt(12)
    94 
    95     if os.path.exists('%s-价格通知.docx' % i):
    96         os.remove('%s-价格通知.docx' % i)
    97     sleep(3)
    98     #每次循环完保存一次文档
    99     document.save('%s-价格通知.docx' % i)

    效果截图:

    注意:

    1,word文档格式问题,标题(居中),称呼(顶格,也就是靠左),内容(缩进四格,靠左),结语(靠右);

    2,利用python批量新建word文档,里面的格式如果接触过css就很好理解,分成三层,第一层是文档本身,是一个大div,第二层是包含在第一层里的自然段,也就是第二层div,第三层是自然段里的文字内容,也就是这个项目里的最后一层div。

    3,文档可以设置默认格式,段落可以设置默认格式,段落内容也可以设置默认格式

  • 相关阅读:
    UVA 707
    我写了一起 Makefile(一)
    百度mp3接口
    MBProgressHUD -[__NSCFString sizeWithAttributes:]: unrecognized selector问题解决了
    BCM策略路由交换芯片
    HDU 4006 The kth great number AVL解
    PHP进口Excel至MySQL方法
    隐藏Console形式无效(继续1)
    优秀的前端project如何制定一个老师--html学习路径
    地址阵列
  • 原文地址:https://www.cnblogs.com/mafu/p/13960529.html
Copyright © 2011-2022 走看看