Как я могу автоматически печатать файлы электронной таблицы Excel?

Моя компания имеет компьютерные отчеты, которые выходят в виде электронных таблиц Excel, которые отправляются по электронной почте в отдел фактурирования. Они хотели бы, чтобы эти отчеты автоматически печатались по мере их получения.

Я уже нашел программу, которая автоматически загрузит вложения электронной почты, называемые Mail Attachment Downloader .

Теперь, в идеале, мне нужна программа, которая будет:

  1. Сканирование выбранной папки для новых загружаемых электронных таблиц XLS.
  2. Распечатайте их.
  3. Избавьтесь от них (желательно, переместив их в другую папку).

Я знаю, что могу просто написать пакетный файл, чтобы позаботиться о # 3; И №1 действительно не нужно. Я мог бы просто запустить программу в определенное время, чтобы автоматически распечатывать любые файлы, которые она видит, а затем следовать ей с помощью командного файла, чтобы переместить файлы в другое место. Но найти программу, которая будет автоматически печатать электронные таблицы Excel, оказалось сложной задачей.

Я видел несколько макросов Excel, которые автоматически печатают электронную таблицу, но я хочу, чтобы она автоматически открывала их и печатала их самостоятельно.

Одна из проблем, с которыми я столкнулся, – это то, что у отдела выставления счетов нет Microsoft Excel. В ближайшем будущем у них будет компьютер с Excel 2010, но на данный момент он имеет только LibreOffice.

Я использовал AutoIt для создания сценария, который открывает Excel, открывает единственный файл (который начинается с «elec») в указанной папке (который начинается с «viat»), печатает его, закрывает Excel, а затем запускает пакетный файл для архивирования Файл просто напечатан.

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

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"") 

И вот код архива.бат:

 move "C:\ViaTrack Reports\*.*" "C:\Users\Chris\Documents\ViaTrack Archives" 

Это чрезвычайно упрощенное кодирование, но оно выполняет свою работу. Главный недостаток этого скрипта заключается в том, что он заставит Excel выкинуть ошибку, если файл не существует в папке. Тем не менее, он планируется запустить примерно через час после того, как файл, как правило, отправлен мне по электронной почте, чтобы разрешить любые неожиданные задержки.

Обычно файл отправляется по электронной почте в 5:40 по будням. Исторически это никогда не было до 5:45. Mail Attachment Downloader настроен для проверки новых вложений каждые 15 минут.

Сегодня утром все прошло отлично. Менеджер отдела биллинга был рад прийти и обнаружить, что ее отчет ждет ее на принтере, и ей не пришлось ее распечатывать.

Если Excel установлен в системе, из которой вы хотите их распечатать, вы можете использовать автоматизацию Excel из сценариев (из которой вы можете запускать или вместо своего пакетного файла).

Вот несколько примеров в VBScript и PowerShell:

VBscript .VBS (найдено здесь ):

 Dim XLApp Dim XLWkbk Dim ObjArgs set ObjArgs = wscript.arguments if ObjArgs.count <> 1 then wscript.echo "Invalid passed arguments" wscript.quit end if Set XLApp = CreateObject("Excel.Application") XLApp.Visible = False Set XLWkbk = XLApp.Workbooks.Open(objargs(0)) XLWkbk.PrintOut XLWkbk.Close False XLApp.Quit Set XLWkbk = Nothing Set XLApp = Nothing Set ObjArgs = nothing 

PowerShell .PS1:

 $excelApp = New-Object -comobject Excel.Application if ($args.Length -lt 1) { Write-Host "Please provide full path and filename (ie: `"c:\books\excelfile.xlsx`")" Exit } $excelBook = $excelApp.Workbooks.Open($args[0]) $excelBook.PrintOut() $excelApp.Quit() 
  • Excel: Как преобразовать «строку» в «число»?
  • Пакетное преобразование XLS в XLSX
  • Вам нужно два окна excel бок о бок, на разных мониторах, в том же экземпляре
  • Слияние MS Word 2007 с ошибками происходит в почтовых кодах с ведущими нулями (например, 01234)
  • Excel: найдите подмножество чисел, которые добавляются к данной сумме?
  • Структура иерархических данных в пустых строках
  • Условное соответствие на основе даты и времени
  • Как я могу выполнить эту функцию с помощью VBA в excel?
  • Excel Условное форматирование Несколько баров данных и значки данных в одной ячейке
  • Как экспортировать - не Сохранить как - в другой формат?
  • Переместите каждую ячейку после столбца A на новую строку
  • Давайте будем гением компьютера.