如何自动打印 Excel 电子表格文件?

Chr*_*ris 6 printing automation spreadsheet libreoffice microsoft-excel

我的公司有计算机生成的报告,这些报告以 Excel 电子表格的形式通过电子邮件发送给计费部门。他们希望在收到这些报告时自动打印这些报告。

我已经找到了一个可以自动下载电子邮件附件的程序,称为Mail Attachment Downloader

现在理想情况下,我想要一个程序,它将:

  1. 扫描已下载的新 XLS 电子表格的选定文件夹。
  2. 打印出来。
  3. 摆脱它们(最好将它们移动到不同的文件夹)。

我知道我可以编写一个批处理文件来处理 #3;并且#1 并不是真正必要的。我可以在某个时间运行一个程序来自动打印它看到的任何文件,然后用一个批处理文件将文件移动到其他地方。但事实证明,找到一个可以自动打印 Excel 电子表格的程序很困难。

我见过一些自动打印电子表格的 Excel 宏,但我希望它自动打开它们并自行打印它们。

我面临的挑战之一是计费部门还没有 Microsoft Excel。在不久的将来,他们将拥有一台装有 Excel 2010 的计算机,但目前只有 LibreOffice。

Chr*_*ris 5

我使用 AutoIt 制作了一个打开 Excel 的脚本,打开指定文件夹(以“viat”开头)中唯一的文件(以“elec”开头),打印它,关闭 Excel,然后运行一个批处理文件来存档文件它刚刚打印。

这是 AutoIt 脚本文件的代码。我为此纠结了一段时间,直到我发现我需要 Sleep 命令才能使其正常工作。

Run("C:\Program Files (x86)\Microsoft Office\Office14\Excel.exe")
WinWaitActive("Microsoft Excel")
Send("^o")
WinWaitActive("Open")
ControlClick("Open", "", 1148)
Send("c:\viat{DOWN}{ENTER}")
Sleep(1000)
Send("elec")
Sleep(1000)
Send("{DOWN}{ENTER}")
WinWaitActive("Microsoft Excel")
Send("^p")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
WinClose("Microsoft Excel")
Sleep(1000)
Run(""C:\Users\Chris\Documents\ViaTrack Archives\archiver.bat"")
Run Code Online (Sandbox Code Playgroud)

这是archiver.bat的代码:

move "C:\ViaTrack Reports\*.*" "C:\Users\Chris\Documents\ViaTrack Archives"
Run Code Online (Sandbox Code Playgroud)

这是极其简单的编码,但它完成了工作。此脚本的主要缺点是,如果文件夹中不存在该文件,它将导致 Excel 抛出错误。但是,它计划在文件通常通过电子邮件发送给我后大约一个小时运行,以允许任何意外的延迟。

该文件通常在每个工作日的凌晨 5:40 通过电子邮件发送。从历史上看,它从未在 5:45 之后到达。邮件附件下载器设置为每 15 分钟检查一次新附件。

今天早上它工作得很好。帐单部经理高兴地进来,发现她的报告在打印机上等着她,不用她自己打印。