在.xlsx文件上自动执行“右键单击+打印”

时间:2018-08-16 13:49:35

标签: excel file printing automation

我需要自动打印.xlsx文件。 我已经看过对此任务的一些回答,说可以通过创建VBA脚本以及一些示例来实现。那与我的问题无关。

以为,我知道也可以右键单击.xlsx文件,然后单击“打印”,这可以完成我想要的确切任务。它会打开Excel,将文件打印到默认打印机,然后关闭Excel。 (顺便说一下,是Windows 7)

所以我认为工作已经在这里完成。

单击此“打印”选项会启动什么过程?它可以通过命令行启动,还是可以通过python脚本“点击”?如果没有,为什么?如此容易点击的东西怎么可能无法自动化?我认为必须以某种方式启动某种过程。

2 个答案:

答案 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 Exechere可以找到更多信息和一些其他类似的实用程序。

答案 1 :(得分:0)

找到了!

可以使用python轻松启动此任务。

import os
os.startfile('C:/path/to/the/file.xlsx','print')

此代码将启动相同的打印任务。从那里开始,对于python开发人员来说,在他的脚本中自动化任务非常简单。

但是,如果您对Python不太了解并且不想现在学习它,将其添加到任何自动化脚本中的简单(或懒惰?)方法是将以上两行代码保存在{ {1}}文件,然后通过命令行启动它(当然,已安装Python)。