You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell Import-Excel模块基于VM列合并两个Excel文件

用Import-Excel模块合并两个Excel文件(基于VM列关联)

前提准备

确保服务器已安装ImportExcel模块,若未安装,执行以下命令(需管理员权限):

Install-Module -Name ImportExcel -Scope CurrentUser -Force

实现步骤与代码

  1. 导入两个Excel文件的数据
# 替换为实际文件路径
$file1Path = "C:\YourPath\File_1.xlsx"
$file2Path = "C:\YourPath\File_2.xlsx"

$file1Data = Import-Excel -Path $file1Path
$file2Data = Import-Excel -Path $file2Path
  1. 构建哈希表快速匹配VM对应的额外列
    把File_1中VM与需要合并的列映射到哈希表,提升匹配效率:
$vmExtraData = @{}
foreach ($entry in $file1Data) {
    $vmExtraData[$entry.VM] = [PSCustomObject]@{
        'System / Category' = $entry.'System / Category'
        'Sub-System V2.0'   = $entry.'Sub-System V2.0'
        'FULL VM DRP'       = $entry.'FULL VM DRP'
    }
}
  1. 合并数据并生成结果集
    遍历File_2的每一行,将对应VM的额外列数据合并进去:
$mergedResult = foreach ($entry in $file2Data) {
    $extra = $vmExtraData[$entry.VM]
    [PSCustomObject]@{
        VM                  = $entry.VM
        powerState          = $entry.powerState
        'System / Category' = $extra.'System / Category' ?? $null
        'Sub-System V2.0'   = $extra.'Sub-System V2.0' ?? $null
        'FULL VM DRP'       = $extra.'FULL VM DRP' ?? $null
    }
}
  1. 导出合并结果到新Excel文件
# 替换为实际输出路径
$outputPath = "C:\YourPath\Merged_VM_Data.xlsx"
$mergedResult | Export-Excel -Path $outputPath -AutoSize -BoldTopRow

注意事项

  • 若File_1中存在重复VM值,哈希表会保留最后一条匹配记录,需处理重复项的话可调整哈希表存储逻辑(比如存数组)
  • 代码采用左连接逻辑:保留File_2的所有行,若File_1中无对应VM,额外列会填充$null
  • 若需要其他关联方式(如内连接、右连接),可修改遍历和匹配逻辑

内容的提问来源于stack exchange,提问作者snehasish nandy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:03:13