JaneksCraft
JaneksCraft

Reputation: 83

Trim a excel cell with PowerShell

Is it possible to trim a excel cell like this:

<newline>
<newline>
A
B
C
<newline>
<newline>

to:

A
B
C

I tried it with the COM Object:

$excel = New-Object -ComObject Excel.Application
$wb = $excel.Workbooks.Open($path)
foreach ($ws in $wb.Worksheets){
[void]$ws.Cells.Trim()
}

But Trim() is not a valid method. Is there any other way to Trim excel cell(s) for a complete worksheet or a given range ($ws.Range) ?

Upvotes: 1

Views: 661

Answers (1)

marsze
marsze

Reputation: 17144

Trim() is a method on System.String. You must use it on a cell's value, not the cell itself, and then update the changed value. I used UsedRange but you can change it to any other range:

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

Don't forget to close or cleanup the Excel object after.

Upvotes: 1

Related Questions