zoukankan      html  css  js  c++  java
  • 办公自动化5_用Python批量生成word版邀请函

    -- coding: utf-8 --

    """
    Created on Sat Jul 11 23:06:30 2020

    @author: Administrator
    """
    ########### 实例5:用Python批量生成word版邀请函 ###################

    1.从Excel文件获取受邀人单位和名字

    from openpyxl import load_workbook #>pip3 install openpyxl
    wb=load_workbook('data/name_list.xlsx')
    ws=wb['name']
    names=[]
    for row in range(2,ws.max_row+1): #因为工作表第一行是标题,所以我们从第2行开始,最大一行+1结束range(2,ws.max_row+1)。
    company=ws["A"+str(row)].value
    name=ws["B"+str(row)].value
    names.append(" {} {} ".format(company,name)) #我们在公司名和姓名之间及前后都加入了一个空格,这样在最终的邀请函上看起来就是这样的:“尊敬的 供应商1 王波 先生/女士:”。
    names

    2.批量填字,存为不同的word文件

    import docx #导入处理word的库,无耻地直接使用别人造好的轮子
    doc=docx.Document('data/邀请函.docx') #括号内填写邀请函模板的路径及文件名。
    for name in names:
    doc.paragraphs[1].runs[2].text=name
    #doc.paragraphs[1].runs[2].text=name,
    #相当于直接用name的值“ 供应商1 王波 ”替换掉****。
    #其中的run指的是每一段中的不同的格式,比如一段中有常规的,
    #有加粗的,有斜体的,有不同颜色的字,那么就有好几个run。
    doc.save('data/邀请函_{}.docx'.format(name))

    print("succed")
    ####################### end# ################################

    因为不懂,所以要学; 因为平凡,所以努力。 因为有为,所以有位。 因为执着,所以精彩。
  • 相关阅读:
    总结类初始化时的代码执行顺序
    Calcite数据源适配器对时间字段的操作问题
    如何自定义一个Calcite对Tablesaw查询的适配器
    Redis集群 Redis Cluster
    培养代码逻辑
    在线查看office文件的两种方法
    WPF Prism框架合集(9.Dialog)
    WPF Prism框架合集(8.Navigation)
    WPF Prism框架合集(7.Mvvm)
    springboot @OneToOne 解决JPA双向死循环/返回json数据死循环
  • 原文地址:https://www.cnblogs.com/quezesheng/p/13286356.html
Copyright © 2011-2022 走看看