使用Powershell从多个工作簿中打印隐藏的Excel工作表

时间:2018-10-18 11:38:46

标签: excel powershell

我每月有一个任务,就是打印一些数据以进行纯会计处理。 这些数据位于隐藏工作表中的某些excel工作簿中,因为现在我必须打开工作簿,显示工作表,打印并再次隐藏。

我想使这项任务自动化。

所有工作簿都在同一目录中

我有一个Powershell脚本,可以在一个目录中打印所有内容,但是我不知道如何针对特定的工作表,更不用说隐藏的工作表了

要从一个目录打印的代码:

$ files = Get-ChildItem“ Y:\ Booking \ Send *。*”

foreach ($file in $files){
   start-process -FilePath $file.fullName -Verb Print 
}

我该怎么做?

1 个答案:

答案 0 :(得分:0)

下面将允许您打印单个excel工作簿的隐藏工作表,您可以扩展该工作表以循环打印多个工作表。

这将使用Windows中设置的默认打印机。

$FilePath = Get-ChildItem "Y:\Booking\November\*.xls" 
$HiddenSheet = "Administration"
$xl = New-Object -ComObject Excel.Application
$xl.Visible = $False

foreach ($file in $FilePath){
    $wb = $xl.Workbooks.Open($file) 
    $ws = $wb.WorkSheets.Item($HiddenSheet) 
    $ws.Visible = $True 
    $ws.PrintOut() 
    $wb.close($false) 
}

$xl.quit()

要能够打印需要设置为可见的隐藏工作表,脚本将对其进行处理,然后关闭工作簿,并且不保留更改。

您必须声明$ hiddensheet的名称,因此,如果每个工作簿上的名称不同,我建议制作一个带有文件路径和工作表名称的CSV文件,以便可以通过它们进行相应的处理。