首页 > 解决方案 > 使用 PowerShell 修剪 Excel 单元格

问题描述

是否可以像这样修剪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)

标签: excelpowershellcom

解决方案


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()
        }
    }
}

之后不要忘记关闭或清理 Excel 对象。


推荐阅读