1、批量转换.doc文件为.docx文件

# coding=utf-8
# 代码文件:chapter7/ch7.2.1.py
import osfrom win32com import client as wc  # 导入模块# 查找dir目录下ext后缀名的文件列表
# dir参数是文件所在目录,ext参数是文件后缀名def findext(dir, ext):allfile = os.listdir(dir)# 返回过滤器对象files_filter = filter(lambda x: x.endswith(ext), allfile)# 从过滤器对象提取列表list2 = list(files_filter)return list2  # 返回过滤后条件文件名if __name__ == '__main__':#  设置输入目录indir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\in'#  设置输出目录outdir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\out'wordapp = wc.Dispatch("Word.Application")  # 创建Word应用程序对象# 查找indir目录中所有.doc文件list2 = findext(indir, '.doc')for name in list2:infile = os.path.join(indir, name)  # 将目录和文件名连接起来name = name.replace('.doc', '.docx')outfile = os.path.join(outdir, name)document = wordapp.Documents.Open(infile)  # 打开Word文件document.SaveAs(outfile, FileFormat=12)print(outfile, "转换OK。")document.Close(0)  # 关闭Word 0表示不保存变更print("Game Over!")

2、采用模板批量生成证书文件

# coding=utf-8
# 代码文件:chapter7/ch7.2.2.pyfrom datetime import datetimeimport xlwings as xw# 从docxtpl库导入DocxTemplate对象
from docxtpl import DocxTemplate''' # 读取Excel文件获得员工数据 '''def readdata():app = xw.App(visible=False, add_book=False)f = r'data/员工信息.xlsx'print('打开文件:', f)wb = app.books.open(f)sheet1 = wb.sheets[0]# 选择姓名单元格区域rng = sheet1.range('B2').expand('down')names = rng.valuewb.close()app.quit()print('关闭文件:', f)# 返回姓名列表return namesif __name__ == '__main__':'''获得员工姓名列表 '''emps = readdata()# 获得当前日期,设置日期格式为yyyy-mm-dd(4位年、2位月和2位日)date = datetime.now().strftime('%Y-%m-%d')#  设置输出目录outdir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\out'for emp in emps:tpl = DocxTemplate('data/证书模板.docx')context = {}  # 传递给模板的字典对象context['name'] = empcontext['title'] = '关总经理'context['date'] = datetpl.render(context)  # 渲染模板生成docx文档file = ('{0}/证书-{1}.docx'.format(outdir, emp))tpl.save(file)  # 将渲染成文档对象保存为docx文件print('{0}证书生成完成。'.format(emp))print('Game Over!')

3、批量统计文件页数和字体数

# coding=utf-8
# 代码文件:chapter7/ch7.2.3.pyimport osfrom win32com.client import Dispatch# 查找dir目录下ext后缀名的文件列表
# dir参数是文件所在目录,exts参数是指定文件后缀名列表def findext(dir, exts):allfile = os.listdir(dir)# 返回过滤器对象files_filter = filter(lambda x: os.path.splitext(x)[1] in exts, allfile)# 从过滤器对象提取列表list2 = list(files_filter)return list2  # 返回过滤后条件文件名if __name__ == '__main__':#  设置输入目录indir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\in'# 通过findext函数查找指定目录下的.doc和.docx文件list2 = findext(indir, ['.doc', '.docx'])# 打开Word文档wordapp = Dispatch('Word.Application')wordapp.Visible = False  # 设置文档不可见# 遍历文件列表for name in list2:infile = os.path.join(indir, name)  # 将目录和文件名连接起来document = wordapp.Documents.Open(infile)  # 打开word文件# 重新编排页面document.Repaginate()pagenum = document.ComputeStatistics(2)  # 返回文档页数wordnum = document.ComputeStatistics(6)  # 返回文档字符数# 2   页数# 1   行数# 3   字符数# 4  段落数# 6  亚洲语言字符数# 0 单词数print('文{0}文件:页数是:{1},字符数:{2}'.format(name, pagenum, wordnum))document.Close(0)    # 关闭Word文档 0表示不保存wordapp.Quit()           # 退出Word应用print("Game Over!")

4、批量转换Word文件为PDF文件

# coding=utf-8
# 代码文件:chapter7/ch7.2.4.py
import osfrom win32com import client as wc  # 导入模块# 查找dir目录下ext后缀名的文件列表
# dir参数是文件所在目录,exts参数是指定文件后缀名列表def findext(dir, exts):allfile = os.listdir(dir)# 返回过滤器对象files_filter = filter(lambda x: os.path.splitext(x)[1] in exts, allfile)# 从过滤器对象提取列表list2 = list(files_filter)return list2  # 返回过滤后条件文件名if __name__ == '__main__':#  设置输入目录indir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\in'#  设置输出目录outdir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\out'wordapp = wc.Dispatch("Word.Application")  # 创建Word应用程序对象# 查找indir目录中所有.doc文件# 通过findext函数查找指定目录下的.doc和.docx文件list2 = findext(indir, ['.doc', '.docx'])for name in list2:# 将目录和文件名连接起来infile = os.path.join(indir, name)# 将文件后缀名.docx替换为.pdfname = name.replace('.docx', '.pdf')# 将文件后缀名.docx替换替为pdfname = name.replace('.doc', '.pdf')outfile = os.path.join(outdir, name)document = wordapp.Documents.Open(infile)  # 打开Word文件document.SaveAs(outfile, FileFormat=17)print(outfile, "转换OK。")document.Close(0)  # 关闭Word文件wordapp.Quit()  # 退出Word应用print("Game Over!")

参考:《趣玩python:自动化办公真简单》p176

一些很好的python自动化办公方案(待整理到readthedocs中)相关推荐

  1. python office自动化_Python office automation:文档,python,自动化,办公,文件,篇,整理,一键,完成...

    文件整理不得不先提一下正则表达式 送上链接: python :re模块基本用法 一.列出文件夹下的所有文件 os.walk()用法 [ (当前目录列表),(子目录列表),(文件列表)]os.walk( ...

  2. Python自动化办公实战,上万数据中统计断网次数并计算平均断网时间

    文章目录 一.需求 二.python代码实现 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更 ...

  3. Python自动化办公word、ppt转pdf

    Python自动化办公,在工作的过程中偶尔会遇到大量的word.ppt转pdf的情况,针对这情况,归纳了一份Python使用,希望可以加大办公的效率! import os import comtype ...

  4. python自动化办公入门书籍推荐-用python进行办公自动化都需要学习什么知识呢?...

    自动化办公无非是excel.ppt.word.邮件.文件处理.数据分析处理.爬虫这些.我来一一介绍如何学习,找资料! 最近做了个Python办公自动化的Live讲座,不要脸的推一波~ python基础 ...

  5. python自动化办公脚本下载-python自动化脚本

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 运维自动化,已经成为运维必不可少的一部分,下面附上自己写的监控nginx_stat ...

  6. python自动化办公入门书籍推荐-盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  7. python自动化办公兼职-python自动化办公?学这些就够用了

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处 ...

  8. python自动化办公 书籍-python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  9. python自动化办公培训排名-盘点使用Python进行自动化办公所需要的知识点

    三军可夺帅也,匹夫不可夺志也. 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动 ...

  10. 教你些技巧,用 Python 自动化办公做一些有趣的事情!太方便了

    不知道大家听没听过这么一句话:所有需要重复做两次的事情,都可以用程序代替我来完成. 是的,说的没错,在现在互联网飞速发展的时代,许多繁琐的事情都可以写一些代码来完成,而Python就是其中之一! 学习 ...

最新文章

  1. kmeans及模型评估指标_模型评估常用指标
  2. 小编教您Springboot项目中异常拦截设计与处理
  3. 这3句屁话,关键时刻能救命
  4. 中职计算机教师个人自我诊改报告,教师自我诊改报告
  5. 三十五、Scrapy 中的杂知识总结和代理池的编写
  6. 使用 dotTrace 分析 .NET Core 代码问题
  7. 疫情与资本寒冬双重危机下,智领云为何能拿到数千万融资?
  8. icmp协议介绍,type code 对应表
  9. python复习-正则表达式
  10. graph-easy使用简介
  11. python考试pass or fail_Pytest官方教程-12-skip及xfail: 处理不能成功的测试用例
  12. ICCV 2019 中国论文数量超美国,商汤57篇论文入选!
  13. IO中同步、异步与阻塞、非阻塞的区别
  14. Google的Flutter工具允许开发者开发跨平台应用
  15. ActionScript3文本框字体调整一法
  16. 中移动、中联通、中电信取消网间结算政策:实行对等互联,互不结算
  17. 凸优化第八章几何问题 8.5 中心
  18. 智慧公厕管理系统不断提升公厕管理水平
  19. MAC-快捷键打开终端
  20. Photographic Tone Reproduction for Digital Images

热门文章

  1. 发卡机构(POS收单行)代码表
  2. 松下电视机服务器未响应,松下等离子电视机通病有哪些 教你如何解决
  3. matlab排序函数 下标,Matlab自带排序函数sort用法
  4. 11、ARM嵌入式系统:中断使能
  5. 游戏《部落冲突》中的心理学运用
  6. VB通用对话框commom dialog中关于filterindex的设置
  7. 多层线性模型和面板数据模型笔记(待完善,持续更)
  8. 数据结构与算法分析(五)队列
  9. 杰理AD142A AD145A系列芯片的功能简介
  10. git文件没有绿色红色小图标