我每月有一个任务,就是打印一些数据以进行纯会计处理。 这些数据位于隐藏工作表中的某些excel工作簿中,因为现在我必须打开工作簿,显示工作表,打印并再次隐藏。
我想使这项任务自动化。
所有工作簿都在同一目录中
我有一个Powershell脚本,可以在一个目录中打印所有内容,但是我不知道如何针对特定的工作表,更不用说隐藏的工作表了
要从一个目录打印的代码:
$ files = Get-ChildItem“ Y:\ Booking \ Send *。*”
foreach ($file in $files){
start-process -FilePath $file.fullName -Verb Print
}
我该怎么做?
答案 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文件,以便可以通过它们进行相应的处理。