mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-15 07:43:23 +00:00
Put Get-ExcelColumnName Back in
Violated the "break nothing" rule by taking it out
This commit is contained in:
22
Get-ExcelColumnName.ps1
Normal file
22
Get-ExcelColumnName.ps1
Normal file
@@ -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 ''
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
function Get-XYRange {
|
function Get-XYRange {
|
||||||
param($targetData)
|
param($targetData)
|
||||||
|
|
||||||
$record = $targetData| Select-Object -First 1
|
$record = $targetData| select -First 1
|
||||||
$p=$record.psobject.Properties.name
|
$p=$record.psobject.Properties.name
|
||||||
|
|
||||||
$infer = for ($idx = 0; $idx -lt $p.Count; $idx++) {
|
$infer = for ($idx = 0; $idx -lt $p.Count; $idx++) {
|
||||||
@@ -15,12 +15,12 @@ function Get-XYRange {
|
|||||||
Name = $name
|
Name = $name
|
||||||
Value = $value
|
Value = $value
|
||||||
DataType = $result.DataType
|
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]@{
|
[PSCustomObject]@{
|
||||||
XRange = $infer | ? {$_.datatype -match 'string'} | Select-Object -First 1 excelcolumn, name
|
XRange = $infer | ? {$_.datatype -match 'string'} | select -First 1 excelcolumn, name
|
||||||
YRange = $infer | ? {$_.datatype -match 'int|double'} |Select-Object -First 1 excelcolumn, name
|
YRange = $infer | ? {$_.datatype -match 'int|double'} |select -First 1 excelcolumn, name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user