文章目录
批量打印工作簿批量打印多个工作簿中的指定工作表批量打印工作簿
专门用于打印的函数PrintOut()
import os #导入os模块import xlwings as xw #导入xlwings模块file_path = 'e:/table' #给出要打印的工作簿所在的文件夹路径file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称app = xw.App(visible=False,add_book=False)for i in file_list:if i.startswith('~$'):# 判断是否有文件名以“~$”开头的文件continue # 如果有,则跳过这种类型的文件file_paths = os.path.join(file_path,i) #获取需要打印的工作簿的文件路径workbook = app.books.open(file_paths) #打开要打印的工作簿workbook.api.PrintOut() #打印工作簿app.quit()
因为xlwings模块没有提供打印工作簿的函数,所以第11行代码利用工作簿对象的api属性调用VBA的PrintOut()函数来打印工作簿,该函数的语法格式和常用参数含义如下:
PrintOut(From,To,Copies,Preview,ActivePrinter,PrintToFile,Collate,PrToFile)
批量打印多个工作簿中的指定工作表
import os #导入os模块import xlwings as xw #导入xlwings模块file_path = 'e:/table' #给出要打印的工作簿所在的文件夹路径file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称sheet_name = 'sheetX' #给出要打印的工作表的名称app = xw.App(visible=False,add_book=False)for i in file_list:if i.startswith('~$'):# 判断是否有文件名以“~$”开头的文件continue # 如果有,则跳过这种类型的文件file_paths = os.path.join(file_path,i) #获取需要打印的工作簿的文件路径workbook = app.books.open(file_paths) #打开要打印的工作簿for j in workbook.sheets:if j.name == sheet_name: #判断工作簿中是否存在名为“sheetX”的工作表j.api.PrintOut() #如果存在,则打印该工作表breakapp.quit()