python 打印doc和excel

阅读: 评论:0

python 打印doc和excel

python 打印doc和excel

python 打印doc和excel

前阵子做了一个小工具,利用doc模板实现批量构造文档和打印,其中的打印功能查找很多文档才实现,现在单独记录下来,以备不时之需

DispatchEx模块

用到DispatchEx模块,首先安装 pywin32并导入

上代码

import os
from win32com.client import DispatchEx
import time
from queue import Queue# 创建一个空队列 用于存放文件夹内所有文件名
q = Queue(600)# 方法 遍历文件夹 将该文件夹下包括所有子文件夹下所有文档路径存入列表
def traver(path):pathlist = os.listdir(path)for file in pathlist:abspath = os.path.join(path, file)if os.path.isfile(abspath):# 将文件名放入队列里q.put(abspath)else:traver(abspath)# break# 通过路径 打印文档 队列q是全局变量 这里不用传参数
def docx_print():while True:pty():breakelse:# 取出一个f = q.get()# 通过对路径字符串切片后,取到扩展名,用于判断是表格还是文档eName = f.split('.')[-1]if eName == 'xls' or eName == 'xlsx':#w = DispatchEx('excel.Application')w = DispatchEx('excel.Application')w.Visible = 0  #不打开软件w.DisplayAlerts = 0 #不报错doc = w.Workbooks.Open(f).Worksheets('Sheet1')elif eName == 'doc' or eName == 'docx':w = DispatchEx('kwps.Application')w.Visible = 0  # 不打开软件w.DisplayAlerts = 0  # 不报错doc = w.Documents.Open(f)print("正在打印:{}".format(f))doc.PrintOut()time.sleep(1)w.Quit()if __name__ == '__main__':## 需要打印文件或文件夹的路径path = r'C:Users...Desktop...'traver(path)print("文件读取完毕,共有{}个".format(q.qsize()))docx_print()

说明

1.打印效果很不错,不会弹出word软件,excel和word都能做到自动打印,只要将想要输出的打印机设为系统默认打印机即可
2.可以打印路径下,文件夹和子文件夹内所有符合条件的
3.暂时只做了文档和表格,图片、pdf打印比较复杂,以后再完善
4.暂时只想起来这么多

本文发布于:2024-02-02 08:30:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170683384642591.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:python   doc   excel
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23