PowerShell重命名Excel工作表

我有一个文件夹多个Excel文件(xls)。 每个工作簿只包含一个Excel表。 我需要将每个Excel表格名称重命名为“结果”。 我怎么能通过PowerShell来做到这一点? 我可以通过下面的命令从特定工作簿中获取表单名称。 但是,我怎么能写一个PowerShell脚本,可以读取多个工作簿,并重命名每个Excel表单“结果”。

$xldoc = new-object -comobject Excel.application $workbook = $xldoc.Workbooks.Open("sample.xls") $worksheet = $workbook.worksheets.item(1) $worksheet.name 

这里的脚本可以重命名excel工作表选项卡,但会提示我确认是否保存文件。 我怎样才能修改代码,以便它自动保存没有提示消息框?

 $xlspath = "D:\Testing\RenameSheet\Testing2.xls" $xldoc = new-object -comobject Excel.application $workbook = $xldoc.Workbooks.Open($xlspath ) $worksheet = $workbook.worksheets.item(1) $worksheet.name = "Result" $worksheet.SaveAS = ($xlspath) $worksheet.Close() $xldoc.Quit() 

我能够在这里得到结果的function。 请closures这个话题。 谢谢

 Function RenameTab ($ExcelFileName, $OutLoc) { $excelFile = "D:\Testing\RenameSheetAdvance\" + $excelFileName + ".xls" $xldoc = New-Object -ComObject "Excel.Application" $xldoc.Visible = $false $xldoc.DisplayAlerts = $false $workbook = $xldoc.Workbooks.Open($excelFile) foreach ($worksheet in $workbook.Worksheets) { $n = $ExcelFileName ##+ "_" + $worksheet.Name $worksheet = $workbook.worksheets.item(1) $worksheet.name = "Sheet1" $workbook.SaveAs($OutLoc + $n + ".xls") $workbook.Close() } $xldoc.Quit() } 

您不能在工作表上使用save() ,而是在工作簿上使用。 使用

 $workbook.Save() $workbook.Close() $xldoc.Quit() 

它不会提示。