问题描述
是否可以像这样修剪Excel单元格
<newline>
<newline>
A
B
C
<newline>
<newline>
收件人:
A
B
C
我尝试使用COM对象:
$excel = New-Object -ComObject Excel.Application
$wb = $excel.Workbooks.Open($path)
foreach ($ws in $wb.Worksheets){
[void]$ws.Cells.Trim()
}
但是Trim()
不是有效的方法。是否有其他方法可以修剪excel单元以获得完整的工作表或给定的范围($ws.Range)
?
解决方法
Trim()是System.String
上的一种方法。您必须将其用于单元格的值,而不是单元格本身,然后更新更改后的值。我使用了UsedRange,但您可以将其更改为任何其他范围:
$excel = New-Object -ComObject Excel.Application
$wb = $excel.Workbooks.Open($path)
foreach ($ws in $wb.Worksheets){
foreach ($cell in $ws.UsedRange) {
if ($cell.Value2 -ne $null) {
$cell.Value2 = $cell.Value2.Trim()
}
}
}
别忘了之后close或清理Excel对象。