Get-ExcelColumnName.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function Get-ExcelColumnName {
    param(
        [Parameter(ValueFromPipeline=$true)]
        $columnNumber=1
    )

    Process {
        $dividend = $columnNumber
        $columnName = @()
        while($dividend -gt 0) {
            $modulo      = ($dividend - 1) % 26
            $columnName += [char](65 + $modulo)
            $dividend    = [int](($dividend -$modulo)/26)
        }

        [PSCustomObject] @{
            ColumnNumber = $columnNumber
            ColumnName   = $columnName -join ''
        }

    }
}