Что нового

как распечатать файл .xls на принтер?

Tiberium6

Новичок
Сообщения
51
Репутация
0
Здравствуйте, не могу найти как распечатать excel файл на принтер.
как это сделать?
Код:
#include <Excel.au3>
$file = "C:\1.xls"
$prnt = "Samsung SCX-3400 Series"
$o_Excel = _ExcelBookOpen($file, 1) ;открываем файл, если 1 поменять на 0, то откроет в скрытом режиме

_ExcelBookClose($o_Excel)
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Вы используете старую UDF "Excel.au3", в новой есть функция
Код:
_Excel_Print()
, но и все другие функции отличаются кардинально, если скрипт уже написан придётся всё переписывать. Для возможности работать в новых версиях Autoit со скриптами , написанными ранее на старых версиях (не скомпилированных) оставьте старую UDF "Excel.au3", только переименуйте её , например в "_Excel.au3" . Если не охота переписывать на новой UDF , можно с новой достать только функцию "_Excel_Print()" и вставить её в свой скрипт.
Код:
Func _Excel_Print($oExcel, $vObject, $iCopies = Default, $sPrinter = Default, $bPreview = Default, $iFrom = Default, $iTo = Default, $bPrintToFile = Default, $bCollate = Default, $sPrToFileName = "")
	If Not IsObj($oExcel) Or ObjName($oExcel, 1) <> "_Application" Then Return SetError(1, 0, 0)
	If IsString($vObject) Then $vObject = $oExcel.Range($vObject)
	If @error Or Not IsObj($vObject) Then Return SetError(2, @error, 0)
	$vObject.PrintOut($iFrom, $iTo, $iCopies, $bPreview, $sPrinter, $bPrintToFile, $bCollate, $sPrToFileName)
	If @error Then Return SetError(3, @error, 0)
	Return $vObject
EndFunc   ;==>_Excel_Print
 
Автор
T

Tiberium6

Новичок
Сообщения
51
Репутация
0
ra4o сказал(а):
Вы используете старую UDF "Excel.au3", в новой есть функция
Код:
_Excel_Print()
, но и все другие функции отличаются кардинально, если скрипт уже написан придётся всё переписывать. Для возможности работать в новых версиях Autoit со скриптами , написанными ранее на старых версиях (не скомпилированных) оставьте старую UDF "Excel.au3", только переименуйте её , например в "_Excel.au3" .


где взять новый UDF "Excel.au3"?
autoit v3.3.8.1
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Скачать новее версию "Autoit", в ней и библиотеки новые будут, можно и просто функцию выдернуть из новой ( в прошлом посте дописал), но если скрипт только пишите, переходите на новую - работает с Excel в разы быстрее ( но нет русской справки).
 
Автор
T

Tiberium6

Новичок
Сообщения
51
Репутация
0
ra4o сказал(а):
Скачать новее версию "Autoit", в ней и библиотеки новые будут, можно и просто функцию выдернуть из новой ( в прошлом посте дописал), но если скрипт только пишите, переходите на новую - работает с Excel в разы быстрее ( но нет русской справки).

Код:
#include <Excel.au3>
$file = "C:\1.xls"
$prnt = "Samsung Universal Print Driver 2"
Local $oExcel = _Excel_Open()
Local $oWorkbook = _Excel_BookOpen($oExcel,$file,False,True)
_Excel_Print($oExcel, $oWorkbook,Default,$prnt)
_Excel_Close($oExcel,False)


получилось вот что. печатает.
Но если открыть файл в фоновом режиме, тогда файл не печатается..
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Что-бы печатал открытый Excel в фоне можно сделать так :
Код:
#include <Excel.au3>
$file = "C:\1.xls"
$prnt = "Samsung Universal Print Driver 2"
Local $oExcel = _Excel_Open(False); Здесь указываете, что открывается документ в фоне
Local $oWorkbook = _Excel_BookOpen($oExcel,$file)
_Excel_Print($oExcel, $oExcel.ActiveSheet,Default,$prnt)
_Excel_Close($oExcel,False)
 
Верх