以下是一个使用PowerShell读取Excel并搜索属性的示例代码:
# 加载Excel COM对象
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
# 打开Excel文件
$workbook = $excel.Workbooks.Open("C:\path\to\your\file.xlsx")
$worksheet = $workbook.Worksheets.Item(1)
# 获取总行数和列数
$rowCount = $worksheet.UsedRange.Rows.Count
$columnCount = $worksheet.UsedRange.Columns.Count
# 搜索属性
$searchProperty = "Name"
$searchValue = "John"
for ($row = 1; $row -le $rowCount; $row++) {
$cellValue = $worksheet.Cells.Item($row, 1).Value2
if ($cellValue -eq $searchValue) {
# 找到匹配的属性
Write-Host "找到匹配的属性在行 $row"
for ($col = 1; $col -le $columnCount; $col++) {
$header = $worksheet.Cells.Item(1, $col).Value2
$value = $worksheet.Cells.Item($row, $col).Value2
Write-Host "$header: $value"
}
break
}
}
# 关闭Excel文件和COM对象
$workbook.Close()
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($worksheet) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($workbook) | Out-Null
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
请确保将 C:\path\to\your\file.xlsx
替换为实际的Excel文件路径,并将 Name
和 John
替换为你要搜索的属性和值。
此代码将打开Excel文件,遍历每一行,并检查第一列中的单元格值是否与搜索值匹配。如果找到匹配的属性,它将输出该行的所有属性和值。
最后,代码关闭Excel文件,并释放与Excel相关的COM对象,以确保清理资源。