excel - PowerShell 重命名 Excel 工作表

标签 excel powershell

我的文件夹中有多个 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 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()

并且不会提示。

关于excel - PowerShell 重命名 Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507942/

相关文章:

vba - 如何在选择后粘贴形状

powershell - 如何使用Powershell在TFS中获取特定项目的最新版本。

powershell - Powershell重新启动服务(如果失败)

python - 如何使用 pandas 将数字列表与 Excel 文档中的列进行比较?

java - 如何使用 Apache POI 检查单元格是否包含图像?

excel - 如何从包装单元格中获取前两行文本?

r - 如何自动绘制具有相同行数和列数的多个 CSV 文件?

powershell - 将内容插入Powershell中的文本文件

powershell - 无法从 Visual Studio 2012 登录 Azure

powershell - -OutVariable和变量分配之间在功能上有区别吗?