检查特定列的Excel工作表的标题行

我有超过150个Excel文件,其中有一些额外的列(我们称之为“ExtraColumn”),而有些没有这个列。 而不是手动打开每个文件,看看哪些有额外的列,我想使用PowerShell来弄清楚。

我迄今试过的代码似乎没有让我到任何地方。 如果您有任何build议或可以指出我正确的答案,这将是非常好的,非常感谢!

gci -Path C:\Test -Recurse | % { $ExcelFile = (Get-Content $_.FullName -TotalCount 1) if ($ExcelFile -like "ExtraColumn") { Write-Host "$_ has the extra column" } else { Write-Host "$_ does not have the extra column" } } 

您可以使用Excel ComObject,代码简单,只需命名工作表,否则您可以find工作表,添加foreach部分运行它的所有文件,

举例来说,我把这个专栏命名为“extracol”

 $excel = New-Object -ComObject excel.application $WB = $excel.Workbooks.Open('C:\exceltest.xlsx') $WS = $Excel.WorkSheets.item("Sheet1") $ExtraCol = ($ws.Columns.Find('extracol')) if ($ExtraCol) {$ExtraCol.Delete()} $wb.Save() $wb.Close() $excel.Quit()