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

时间:2015-09-29 18:25:47

标签: excel powershell

我有超过150个excel文件,其中一些有一个额外的列(让我们称之为" ExtraColumn"),而有些则没有此列。我没有手动打开每个文件以查看哪些文件具有额外的列,而是想使用powershell来解决这个问题。

到目前为止,我尝试过的代码似乎没有让我到任何地方。如果您有任何建议或可以指出正确的答案,那将是非常精彩的,非常感谢!

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" 
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用Excel ComObject,因为代码简单只需命名工作表,否则您也可以找到工作表,添加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()