@Slytherin

Как печатать файл excel целиком?

Данный код печатает только активный лист из excel'я
import os
os.startfile(r"C:\Users\User\Desktop\1.xlsx", "print")
printers = conn.getPrinters()


Попытался сделать листы активными через этот код, но делается только последний лист активным.

from openpyxl import load_workbook
wb = load_workbook(r'C:\Users\User\Desktop\1.xlsx') #Открываем Excel-файл
r=wb.sheetnames
sheet = wb.sheetnames #Получили список всех листов в файле и загнали его в переменную
t=len(r)
while t!=-1:
	r=r[0:t]
	wb.active=t#делаем лист t активным
	t=t-1
	sheet=wb.active
	print(sheet)
	wb.save(r'C:\Users\User\Desktop\2.xlsx') #Сохраняем файл с изменениями

Как сделать все листы активными или как распечатать всю книгу целиком? Вариант создавать для каждого листа отдельный excel не подходит, так как есть двухсторонняя печать
  • Вопрос задан
  • 442 просмотра
Решения вопроса 1
@Slytherin Автор вопроса
Решение проблемы:
import xlwings as xw
import xlwings.constants
wb=xw.Book(r"C:\Users\User\Desktop\1.xlsx")
sh2=wb.sheets
sh2.api.PrintOut(From=1, To=3, Copies=1)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
первый ваш пример - это запрос к операционной системе, запустить зарегистрированную команду на печать файла, второй же - загрузка документа библиотеками офиса в приложении, попробуйте уже тут из питона запускать печать, там метод так и называется PrintOut.

p.s. Пишут что надо постранично пересохранять документ и для каждой печать делать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы