用Python的xlwings模块批量打印工作簿

使用Python的xlwings模块批量打印工作簿

使用Python的xlwings模块和vba对Excel的工作簿进行批量的打印
格式:workbook.PrintOut(From、 To、副本、 Preview、 ActivePrinter、 PrintToFile、 Collate、 PrToFileName、 IgnorePrintAreas)
表达式一个代表工作簿 对象的变量。

参数:

名称 必需/可选 数据类型 说明
From 可选 Variant 打印的开始页号。 如果省略此参数,则从起始位置开始打印。
To 可选 Variant 打印的终止页号。 如果省略此参数,则打印至最后一页。
Copies 可选 Variant 打印份数。 如果省略此参数,则只打印一份。
Preview 可选 Variant 如果为 True,Microsoft Excel 将在打印对象之前调用打印预览。 如果为 False(或省略该参数),则立即打印对象。
ActivePrinter 可选 Variant 设置活动打印机的名称。
PrintToFile 可选 Variant 如果为 True,则打印到文件。 如果没有指定 PrToFileName,Microsoft Excel 将提示用户输入要使用的输出文件的文件名。
Collate 可选 Variant 如果为 True,则逐份打印多个副本。
PrToFileName 可选 Variant 如果将PrintToFile设置为True, 则此参数指定要打印到的文件的名称。
IgnorePrintAreas 可选 Variant 如果为 True,则忽略打印区域并打印整个对象。

import os  # 导入os模块
import xlwings as xw  # 导入xlwings模块

file_path = 'E:\\pythonExample\\01'  # 定义工作簿所在的文件夹路径
file_list = os.listdir(file_path)  # 列出指定路径下的文件及文件夹名称
sheet_name = '产品销售区域'  # 定义工作簿名中新的工作表名称
file_type = ['.xlsx','.xls']  # 定义文件类型列表,用于判断是否为excel文件

app = xw.App(visible=True, add_book=False)

for i in file_list:
    # 判断是否有文件名为“~$”开头的临时文件,startswith(substr,beg,end)
    if i.startswith('~$'):
        continue  # 如果有,则跳过这种类型的文件
    # 拼接工作簿中新的工作表的文件路径
    file_paths = os.path.join(file_path, i)
    # 判断是否为Excel文件,通过扩展名.xls和.xlsx判断
    file_ext = os.path.splitext(i)[1]
    #  判断是不是文件且为excel文件
    if (os.path.isfile(file_paths)) and (file_ext  in file_type):
        wb = app.books.open(file_paths)  # 打开工作簿
        wb.api.PrintOut()  # 打印工作薄
        # wb.api.PrintOut(From=1,To=1,Copies=1,Preview=True)  # 打印工作薄
    else:
        print('文件名为:%s的文件不是excel文件!' %i)
        continue
app.quit()

批量打印多个工作簿中的指定工作表

import os  # 导入os模块
import xlwings as xw  # 导入xlwings模块

file_path = 'E:\\pythonExample\\01'  # 定义工作簿所在的文件夹路径
file_list = os.listdir(file_path)  # 列出指定路径下的文件及文件夹名称
sheet_name = '产品分类表'  # 定义工作簿名中新的工作表名称
file_type = ['.xlsx','.xls']  # 定义文件类型列表,用于判断是否为excel文件

app = xw.App(visible=True, add_book=False)

for i in file_list:
    # 判断是否有文件名为“~$”开头的临时文件,startswith(substr,beg,end)
    if i.startswith('~$'):
        continue  # 如果有,则跳过这种类型的文件
    # 拼接工作簿中新的工作表的文件路径
    file_paths = os.path.join(file_path, i)
    # 判断是否为Excel文件,通过扩展名.xls和.xlsx判断
    file_ext = os.path.splitext(i)[1]
    #  判断是不是文件且为excel文件
    if (os.path.isfile(file_paths)) and (file_ext  in file_type):
        wb = app.books.open(file_paths)  # 打开工作簿
        for j in wb.sheets:
            if j.name == sheet_name:  # 判断工作簿中的工作表是否为要打印的表名称
                print(j.name)
                wb.api.PrintOut('','','',Preview=True)  # 打印工作薄
                break
    else:
        print('文件名为:%s的文件不是excel文件!' %i)
        continue
app.quit()
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在现代办公环境中,自动化工具已经成为提升工作效率和减少重复劳动的关键。Python批量新建工作簿.zip是一个基于Python的自动化脚本,旨在帮助用户快速生成多个Excel工作簿文件,并将它们压缩成一个单一的ZIP文件。这一工具对于需要处理大量数据和报告的业务分析师、财务人员以及任何需要批量创建工作簿的专业人士来说,都是一个极具价值的解决方案。该脚本利用了Python的几个关键库,如openpyxl来操作Excel文件,zipfile用于压缩文件,以及os模块来管理文件路径。用户只需简单配置参数,比如要创建的工作簿数量、名称格式、模板文件等,脚本就能自动完成剩余的工作。使用这个脚本的好处在于:节省时间:自动化创建和压缩工作簿的过程,避免了手动操作的繁琐。减少错误:手动创建多个文件时容易出错,而自动化脚本可以确保每个文件的一致性和准确性。易于定制:通过简单的参数调整,可以根据不同的需求生成不同配置的工作簿。提高效率:释放人力资源,让专业人士有更多时间专注于分析和决策,而不是文档管理。总之,Python批量新建工作簿.zip是一个强大的自动化工具,它不仅提高了工作效率,还确保了数据处理的准确性和一致性。对于需要管理大量Excel文件的用户来说,这个脚本无疑是一个宝贵的资源。重新回答||

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值