从单个目录合并多个Excel文件

我正在尝试将多个Excel文件与Powershell合并在一起,每个文件具有不同的名称,但是文件中的工作表相同。我试图将目录中的第一个文件移动到具有通用名称的Output文件夹,以便我可以在代码中定义路径。

脚本将移动并重命名第一个文件,但是当它返回以复制第一个文件的内容时,出现以下错误。

“对不起,我们找不到文件Three.xlsx。是否可能将其移动,重命名或删除了?”

有人知道这是为什么吗?或更有效的解决方案,因为我将在每个包含10张纸的文件中使用此文件,其中有些纸有400,000行。谢谢。

代码如下:

        write-ascii 'Merging' -Fore Green


        $path = "C:\Users\user1\Desktop\ReportScript\Test\"
        $contents = Get-ChildItem -Path $path -Force -Recurse -File | Select-Object -First 1

        Move-Item "C:\Users\user1\Desktop\ReportScript\Test\$contents" "C:\Users\user1\Desktop\ReportScript\TestMerge\TestOutput.xlsx"

        $FinalReport = "C:\Users\user1\Desktop\ReportScript\TestMerge\TestOutput.xlsx"

        $xl = new-object -c excel.application
        $xl.displayAlerts = $false # don't prompt the user



        Start-Sleep -Seconds 5


        foreach ($File in (Get-ChildItem -Path $path))
        {

        $wb1 = $xl.workbooks.open($FinalReport) # open target
        $worksheetOutcome = $wb1.WorkSheets.item(“Sheet1”)



        $wb2 = $xl.workbooks.open($File,$null,$true) # open source,readonly
        $worksheet2 = $wb2.WorkSheets.item(“Sheet1”)
        $worksheet2.activate()
        $lastRow1 = $worksheet2.UsedRange.rows.count
        $range1 = $worksheet2.Range("A1:O$lastRow1")
        $range1.copy()

        $worksheetOutcome.activate()
        $lastRow2 = $worksheetOutcome.UsedRange.rows.count + 1
        $range2 = $worksheetOutcome.Range("A$($lastRow2):O$($range1.Rows.Count)")
        $worksheetOutcome.Paste($range2)
        $wb2.close($false) # close source workbook w/o saving

        } 
qq7068127 回答:从单个目录合并多个Excel文件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3152442.html

大家都在问