我需要自动打印.xlsx文件。 我已经看过对此任务的一些回答,说可以通过创建VBA脚本以及一些示例来实现。那与我的问题无关。
以为,我知道也可以右键单击.xlsx文件,然后单击“打印”,这可以完成我想要的确切任务。它会打开Excel,将文件打印到默认打印机,然后关闭Excel。 (顺便说一下,是Windows 7)
所以我认为工作已经在这里完成。
单击此“打印”选项会启动什么过程?它可以通过命令行启动,还是可以通过python脚本“点击”?如果没有,为什么?如此容易点击的东西怎么可能无法自动化?我认为必须以某种方式启动某种过程。
答案 0 :(得分:0)
用于Office文档的上下文菜单打印命令利用动态数据交换(DDE),并且不直接运行可从命令行复制的命令。
您可以在注册表中查看命令的内容。浏览至HKEY_CLASSES_ROOT\.xlsx
并查看(默认)数据列。在我的机器上,“ Excel.Sheet.12”是.xslx文件的类型。然后浏览至HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\
以查看为该文件类型注册的命令。在我的机器上,“打印”(默认)为"C:\Program Files\Microsoft Office\Office16\EXCEL.EXE" /dde
,“命令”为zn=BV5!!!!4!!!!MKKSkEXCELFiles>]-z5hw$l[8QeZZR4_X=$ /dde
,这两个命令都不能直接从命令行运行或直接使用。
将需要另一个程序来允许您访问界面,但是有些程序可以让您从命令行使用DDE。我推荐Freddy Vulto的Class Exec。 here可以找到更多信息和一些其他类似的实用程序。
答案 1 :(得分:0)
找到了!
可以使用python轻松启动此任务。
import os
os.startfile('C:/path/to/the/file.xlsx','print')
此代码将启动相同的打印任务。从那里开始,对于python开发人员来说,在他的脚本中自动化任务非常简单。
但是,如果您对Python不太了解并且不想现在学习它,将其添加到任何自动化脚本中的简单(或懒惰?)方法是将以上两行代码保存在{ {1}}文件,然后通过命令行启动它(当然,已安装Python)。