python与excel第五节 打印excel

批量打印工作表

import os
import xlwings as xw
file_path =
'D:\\TEST\\pythonexcel'
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)

# 打印工作簿;xlwings模块没有提供打印工作簿的函数,利用工作簿对象的api属性调用VBAPrintOut()函数来打印工作簿
   
print(i)
   
# workbook.api.PrintOut()
    # workbook.api.PrintOut(From=1,To=3,Copies=1,Preview=True,PrintToFile=True,PrToFileName='
测试文件')
   
workbook.api.PrintOut(From=1,To=1,Copies=1,Preview=True,PrintToFile=True,PrToFileName='测试文件')
   
# workbook.api.PrintOut(Preview=True,From=1,Copies=1)
app.quit()

上面xlwings.api.vba方法可以直接调用vba中方法。

vba中Printout方法说明:

语法格式:

expression.PrintOut (FromToCopiesPreviewActivePrinterPrintToFileCollatePrToFileNameIgnorePrintAreas)

Name

Required/Optional

Description

From

可选

数字类型,打印的起始页,如果为空则从开始页打印

To

可选

数字类型,打印的结束页,如果为空则打印到最后一页

Copies

可选

数字类型,设置打印几份,如果为空则打印一份。

Preview

可选

布尔类型,默认False。为True时打印前先预览,False时直接打印。

ActivePrinter

可选

设置用于本次打印的打印机名称,如果为空则用系统指定打印机执行。

PrintToFile

可选

布尔类型,默认False。为True时,则打印到prn文件,不打印到到打印机。False时打印到 打印机。如果为True且PrToFileName参数没有指定,则系统会提示输入文件名称。

Collate

可选

布尔类型,默认为True,为True时逐份打印多个副本。

PrToFileName

可选

字符类型,当PrintToFile参数为True时,该参数指定prn文件的名称。

IgnorePrintAreas

可选

布尔类型,为True时忽略excel中的打印区域设置,直接打印整个文件。

注意1:From和To参数指定的打印起始页并非excel文件中的起始页或者终止页,而是打印机打印的打印的起止页,即手工打印时设置的起止页码。

注意2:这个语句:workbook.api.PrintOut(From=1,To=1,Copies=1,Preview=True,PrintToFile=True,PrToFileName='测试文件')有的时候打印不出来,这时候考虑一下是否是起始页、终止页、预览几个参数的设置问题。也有可能是系统打印机设置的问题。

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值