无法从PowerShell中选择Excel工作表

无法从PowerShell中选择Excel工作表,excel,powershell-2.0,Excel,Powershell 2.0,我正在学习PowerShell,不幸的是,我一直坚持使用v2而不是最新版本。我试图做的是打开Excel2010并选择一个特定的工作表。问题是我无法选择我感兴趣的工作表。这是我的密码: $objExcel=New-Object -ComObject Excel.Application $objExcel.Visible=$True $workbook=$objExcel.Workbooks.Open($excelfile) $worksheet = $workbook.worksheets | w

我正在学习PowerShell,不幸的是,我一直坚持使用v2而不是最新版本。我试图做的是打开Excel2010并选择一个特定的工作表。问题是我无法选择我感兴趣的工作表。这是我的密码:

$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=$True
$workbook=$objExcel.Workbooks.Open($excelfile)
$worksheet = $workbook.worksheets | where {$_.name -eq 'AnalysisMain'}
Write-Output "worksheet: $worksheet"
我已经验证了工作表名称拼写正确,代码看起来不错,但是结果是没有返回任何工作表-结果为空

我在哪里出轨了?

在我的测试中:

$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=$True
$workbook=$objExcel.Workbooks.Open('C:\\_Stuff\\test.xlsx')
$worksheet = $workbook.worksheets.item('Sheet1')
Write-Output $worksheet.name
制作了预期输出表1

这也起到了作用:

$objExcel=New-Object -ComObject Excel.Application
$objExcel.Visible=$True
$workbook=$objExcel.Workbooks.Open('C:\\_Stuff\\test.xlsx')
$worksheet = $workbook.worksheets | where {$_.name -eq 'Sheet1'}
Write-Output $worksheet.name

是否确实设置了$workbook对象?

$Workplace=$workbook.workwheets。itemAnalysisMain@TimWilliams我也尝试过该语句,但结果是出现了一个异常:不能对空值表达式调用方法并专门指向该行代码。$wb.Worksheets |%{'-{0}-'-f${.Name}是否显示前导空格或尾随空格?@AnsgarWiechers运行该命令只返回'-'。名称不应该出现在连字符之间吗?我的测试产生了相同的结果,所以我怀疑工作表名称可能存在错误放置空格的问题。如果打开工作簿时出现问题,他可能会在某个时候出错。顺便说一句,不需要在路径中逃避反斜杠。@AnsgarWiechers-谢谢:我不确定反斜杠-我第一次尝试Powershell。。。