标题: [文件操作] [已解决]有没有可以打印excel文件的命令? [打印本页]
作者: hnfeng 时间: 2024-5-20 20:29 标题: [已解决]有没有可以打印excel文件的命令?
本帖最后由 hnfeng 于 2024-5-21 09:43 编辑
想通过命令行 批处理 实现打印指定excel文件到指定(或默认)打印机上,找半天没找到方法
第三方程序库里面有个 PrintExcel- http://www.bathome.net/s/tool/?key=printexcel
复制代码
,看功能不错,但是试用不成功,总报错
求助高手,谢谢
作者: 877 时间: 2024-5-20 20:41
- Dim objExcel
- Set objExcel = CreateObject("Excel.Application")
- objExcel.Visible = False
- objExcel.DisplayAlerts = False
-
- Dim workbook
- Set workbook = objExcel.Workbooks.Open("C:\路径\至\你的\文件.xlsx") ' 修改为你的Excel文件路径
- workbook.PrintOut ' 打印操作
- workbook.Close SaveChanges:=False
- objExcel.Quit
-
- Set objExcel = Nothing
复制代码
调用以上vbs试试- @echo off
- cscript //nologo "C:\路径\至\printExcel.vbs"
复制代码
作者: hnfeng 时间: 2024-5-20 21:41
本帖最后由 hnfeng 于 2024-5-20 21:56 编辑
回复 2# 877
谢谢,但是报错- C:\temp\PrintExcel.vbs(9, 28) Microsoft VBScript 编译器错误: 缺少语句
复制代码
请看看哪里的问题
还有,如果需要指定打印机呢 "\\192.168.1.1\Canon iX6700 series"
作者: 877 时间: 2024-5-21 09:18
回复 3# hnfeng
没打印机,测试不了。。修改如下,可以试试~- Dim objExcel
- Set objExcel = CreateObject("Excel.Application")
- objExcel.Visible = False
- objExcel.DisplayAlerts = False
-
- ' 修改为你的Excel文件路径
- Dim workbookPath
- workbookPath = "C:\路径\至\你的\文件.xlsx"
- Set workbook = objExcel.Workbooks.Open(workbookPath)
-
- ' 指定打印机名称,例如 "\\192.168.1.1\Canon iX6700 series"
- Dim printerName
- printerName = "\\192.168.1.1\Canon iX6700 series"
-
- ' 使用PrintOut方法并指定打印机
- workbook.PrintOut ActivePrinter:=printerName, Collate:=True
-
- workbook.Close SaveChanges:=False
- objExcel.Quit
-
- Set objExcel = Nothing
复制代码
或者这个- Option Explicit
- Dim objExcel, workbook
-
- ' 创建Excel Application对象
- Set objExcel = CreateObject("Excel.Application")
- objExcel.Visible = False
- objExcel.DisplayAlerts = False
-
- ' 打开Excel文件,确保路径是正确的
- Set workbook = objExcel.Workbooks.Open("C:\路径\至\你的\文件.xlsx")
-
- ' 指定打印机
- objExcel.ActivePrinter = "\\192.168.1.1\Canon iX6700 series"
-
- ' 打印工作簿
- workbook.PrintOut
-
- ' 关闭工作簿,不保存更改
- workbook.Close SaveChanges:=False
-
- ' 退出Excel Application
- objExcel.Quit
-
- ' 清理对象
- Set workbook = Nothing
- Set objExcel = Nothing
复制代码
作者: 877 时间: 2024-5-21 09:20
@echo off
cscript //nologo printExcel.vbs
exit
确保你的VBS文件命名为printExcel.vbs,并且它位于批处理文件相同的目录下。
作者: hnfeng 时间: 2024-5-21 09:33
回复 4# 877
谢谢帮忙。
第一个代码的错误是:
C:\temp\PrintExcel.vbs(16, 33) Microsoft VBScript 编译器错误: 缺少语句
第二个代码的错误是:
C:\temp\PrintExcel.vbs(19, 28) Microsoft VBScript 编译器错误: 缺少语句
作者: hnfeng 时间: 2024-5-21 09:41
本帖最后由 hnfeng 于 2024-5-21 10:00 编辑
我用 AU3 写了几行代码,可以打印。找时间再完善:加一些容错、提示、参数什么的。- #include <Excel.au3>
- Local $ExcelFile=@ScriptDir & "\color.xlsx"
- Local $oExcel = _Excel_Open()
- Local $oWorkbook = _Excel_BookOpen($oExcel, $ExcelFile, True)
- _Excel_Print($oExcel, $oExcel.ActiveSheet, 1, "\\192.168.1.1\Canon iX6700 series")
- _Excel_Close($oExcel, 0)
复制代码
需求就是,彩色喷墨打印机如果较长时间不打印,喷头可能出问题--堵塞,而且第一次打印时,打印机要准备好久(打印机里面有响声,可能在清洗打印喷头之类的动作),然后才打印,之后的打印就正常速度了。所以想定时在 每星期一早上打印一个excel小文件,上班后如果有打印,马上就打印出来了。
作者: hnfeng 时间: 2024-5-22 11:37
经过一天多零零星星的时间,终于用 Autoit 写了个小程序,暂时未发现bug。如果有需要使用命令行、批处理打印excel文件的,可以联系我。- ----------------------------------------------------------------------------
- PrintExcel(CMD) v1.0, 2024/05, hnfeng
-
- 功能:打印Excel文件
-
- 用法:PrintExcel.exe <参数1> [参数2] [参数3] [参数4]
-
- <参数1> - 含路径的Excel文件名(如果未指明路径,则自动添加当前路径)
- [参数2] - /Act : 仅打印默认工作表,默认
- - /All : 打印所有工作表
- [参数3] - 打印份数,为大于0的整数值,默认值是1
- [参数4] - 打印机名。缺省或错误时,使用系统默认打印机
- - 可以使用命令“wmic printer get name”获得系统中所有打印机
- /? -? - 显示此帮助
-
- 例子:PrintExcel.exe c:\Test.xlsx /Act 1 "\\192.168.1.1\Canon iX6700 series"
- PrintExcel.exe Test.xlsx /Act 1 "RICOH MP 2001 PCL 6"
- PrintExcel.exe Test.xlsx /All 2
- PrintExcel.exe Test.xlsx
- PrintExcel.exe "c:\Test Prn\Test.xlsx" /All 1 "RICOH MP 2001 PCL 6"
-
- ----------------------------------------------------------------------------
复制代码
Autoit 写的程序某些杀毒软件中会被误报。自己斟酌。
PrintExcel.exe
410,112 字节
Sha1: 9BDFCDA9B045306447EBB5F6456151B53E589C20
Sha256: AAE0B941FA7E2CCEA2F867BF7262D727D2DBC4A4EF0F0599F3F3172C81305D7E
https://www.virscan.org/report/a ... 599f3f3172c81305d7e
https://habo.qq.com/file/showdet ... 2AIOls6U2oHYw%3D%3D
https://www.virustotal.com/gui/f ... 599f3f3172c81305d7e
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |