如何使用python调用打印机打印Excel指定区域(B1:F15)?

您好,想请教一个问题Excel表格打印表格指定区域(这个区域随着变量变动)
用vba:

“Sheets("测试").Range("B1:F15" ).PrintOut”直接调用打印机进行将B1:F15区域打印出来。

如果使用python应该怎么操作?查了好多资料,一点头绪都没有,希望能指点一下,感谢

既然你懂vba试试xlwings库,

    Gets or sets the range address that defines the print area.

    示例

    >>> mysheet.page_setup.print_area = '$A$1:$B$3'
    >>> mysheet.page_setup.print_area
    '$A$1:$B$3'
    >>> mysheet.page_setup.print_area = None  # clear the print_area

用openpyx读取出数据,转为字符串,并将该结果作为参数,传入调用打印机函数实现打印。
参考如下实现方式:

import win32print
import win32ui
import win32con
from openpyxl import load_workbook
def print2Printer(x):
        INCH = 1440
        hDC = win32ui.CreateDC ()
        hDC.CreatePrinterDC (win32print.GetDefaultPrinter ())
        hDC.StartDoc ("Test doc")
        hDC.StartPage ()
        hDC.SetMapMode (win32con.MM_TWIPS)
        hDC.DrawText (x,(0, INCH * -1, INCH * 8, INCH * -2), win32con.DT_CENTER)
        hDC.EndPage ()
        hDC.EndDoc ()

wb=load_workbook('t1.xlsx')
ws=wb.active
a=[]
for row in ws['B2':'C5']:
    a.append(','.join([str(x.value) for x in row]))
x='\n'.join(a)

print2Printer(x)

调用打印机函数参考这里:
https://blog.csdn.net/qq_43766304/article/details/105459279

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632