diff --git a/Get-ExcelColumnName.ps1 b/Get-ExcelColumnName.ps1 new file mode 100644 index 0000000..7562391 --- /dev/null +++ b/Get-ExcelColumnName.ps1 @@ -0,0 +1,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 '' + } + + } +} \ No newline at end of file diff --git a/Get-XYRange.ps1 b/Get-XYRange.ps1 index 9aa0cff..179679d 100644 --- a/Get-XYRange.ps1 +++ b/Get-XYRange.ps1 @@ -1,7 +1,7 @@ function Get-XYRange { param($targetData) - $record = $targetData| Select-Object -First 1 + $record = $targetData| select -First 1 $p=$record.psobject.Properties.name $infer = for ($idx = 0; $idx -lt $p.Count; $idx++) { @@ -15,12 +15,12 @@ function Get-XYRange { Name = $name Value = $value DataType = $result.DataType - ExcelColumn = [OfficeOpenXml.ExcelAddress]::TranslateFromR1C1("R[1]C[$($idx+1)]", 0 , 0) -replace "\d+", "" #(Get-ExcelColumnName ($idx + 1)).ColumnName + ExcelColumn = (Get-ExcelColumnName ($idx+1)).ColumnName } } [PSCustomObject]@{ - XRange = $infer | ? {$_.datatype -match 'string'} | Select-Object -First 1 excelcolumn, name - YRange = $infer | ? {$_.datatype -match 'int|double'} |Select-Object -First 1 excelcolumn, name + XRange = $infer | ? {$_.datatype -match 'string'} | select -First 1 excelcolumn, name + YRange = $infer | ? {$_.datatype -match 'int|double'} |select -First 1 excelcolumn, name } } \ No newline at end of file