您好,想请教一个问题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