首页 > 解决方案 > 从多个 excel 文件复制工作表并粘贴到新的 xlsx

问题描述

我有一个包含多个 Excel 工作簿的文件夹,每个工作簿都有一个名称相同的选项卡。我想从每个工作簿中复制选项卡并使用 powershell 将它们放入新的 xlsx 中。开始于:20 个具有“sheet1”的工作簿所需的结果:1 个包含 20 个“sheet1”选项卡的工作簿。这是我开始的代码,但我不确定我是否在正确的轨道上。无论我的用户名如何,我都是 powershell 新手。使用下面的代码,我可以从 xlsx 复制工作表并将其粘贴到新的 xlsx 中。如何从多个 xlsx 复制喜欢的命名表并将它们放入新的 xlsx

Copy-ExcelWorksheet -SourceWorkbook ('c:\users\user1\test.xlsx') -SourceWorksheet 'Sheet1' -DestinationWorksheet Sheet1 -DestinationWorkbook 'c:\users\user1\test2.xlsx'

标签: excelpowershell

解决方案


$ExcelObject=New-Object -ComObject excel.application
$ExcelObject.visible=$false
$ExcelFiles=Get-ChildItem -Path C:\Users\user1

$Workbook=$ExcelObject.Workbooks.add()
$Worksheet=$Workbook.Sheets.Item('Sheet1')

foreach($ExcelFile in $ExcelFiles){

$Everyexcel=$ExcelObject.Workbooks.Open($ExcelFile.FullName)
$Everysheet=$Everyexcel.sheets.item('Sheet1')
$Everysheet.Copy($Worksheet)
$Everyexcel.Close()

}
$Workbook.Saveas("C:\Users\user1\test.xlsx")
$ExcelObject.Quit()

推荐阅读