zoukankan      html  css  js  c++  java
  • 程序员撩妹之让行政小姐姐xing奋的代码

    原文地址以及视频演示效果以及代码获取,请点击下方

    超链接在这里!!!!

    视频演示效果

    前言

    在这里插入图片描述

    有个小姐姐在后台询问我,最近企业有一个活动,有一个几百人的表单,还有一份邀请函模板文档,最近不小心刷到了我。上图!

    在这里插入图片描述
    虽然可能没听懂你在说什么,你也不给我复制粘贴的内容,如果我没猜错的话。应该是这样的:

    右侧 *** 内容替换成左侧的 单位+姓名 或者是 姓名

    无题

    不知道取什么标题好,就这样,暂时就定性为:用Python批量生成word版邀请函

    日常水一下:

    • 模块
      • openpyxl 中的 load_workbook 方法 .
      • docx (在这里卖个关子,想看完整的请点击超链接)
    • 下载.
      • pip install openpyxl

    获取受邀人的信息

    我们首先导入openpyxl模块中的load_workbook模块。

    from openpyxl import load_workbook
    

    我们使用load_workbook(path)读取文件,并存在变量wb里面。

    wb=load_workbook('data/name_list.xlsx')
    ws=wb['name']
    

    接下来我们需要选取我们所需要的“Sheet”,也就是名字叫"name"的那张表

    ws=wb['name']
    

    然后定义一个空列表names来存储受邀人单位和名字信息。随后我们遍历工作表,将所有信息提取出来存入列表names,因为工作表第一行是标题,所以我们从第2行开始,最大一行+1结束range(2,ws.max_row+1)

    names=[]
    for row in range(2,ws.max_row+1):
        company=ws["A"+str(row)].value
        name=ws["B"+str(row)].value
        names.append(f" {company} {name} ")
    

    以上步骤完成后,我们就可以开始批量生成邀请函了。首先导入处理word的库

    import docx
    

    docx.Document('data/邀请函.docx')为固定写法,括号内填写邀请函模板的路径及文件名。doc可理解为就是这个名为“邀请函”word文件。然后遍历names列表,将里面的信息逐个写入word文件的第二段的第三个run,即doc.paragraphs[1].runs[2].text=name,最后,用save保存即可

    doc=docx.Document('data/邀请函.docx')
    for run in doc.paragraphs[1].runs:
        for name in names:
            run.text = run.text.replace('****', name)
            doc.save(f'data/邀请函_{name}.docx')
    

    效果

  • 相关阅读:
    java实现孪生素数
    java实现孪生素数
    java实现孪生素数
    java实现孪生素数
    java实现孪生素数
    java实现连续数的公倍数
    java实现连续数的公倍数
    mysql千万级数据量根据索引优化查询速度
    MySQL特异功能之:Impossible WHERE noticed after reading const tables
    MySQL:浅析 Impossible WHERE noticed after reading const tables
  • 原文地址:https://www.cnblogs.com/CoXieLearnPython/p/14884593.html
Copyright © 2011-2022 走看看