mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-10 05:13:49 +00:00
@@ -78,8 +78,7 @@ function Import-Excel {
|
|||||||
$WorkSheetname=1,
|
$WorkSheetname=1,
|
||||||
[int]$HeaderRow=1,
|
[int]$HeaderRow=1,
|
||||||
[string[]]$Header,
|
[string[]]$Header,
|
||||||
[switch]$NoHeader,
|
[switch]$NoHeader
|
||||||
[switch]$DataOnly
|
|
||||||
)
|
)
|
||||||
|
|
||||||
Process {
|
Process {
|
||||||
@@ -99,33 +98,14 @@ function Import-Excel {
|
|||||||
$Columns=$dimension.Columns
|
$Columns=$dimension.Columns
|
||||||
|
|
||||||
if($NoHeader) {
|
if($NoHeader) {
|
||||||
if ($DataOnly) {
|
foreach ($Row in 0..($Rows-1)) {
|
||||||
$CellsWithValues = $worksheet.Cells | where Value
|
$newRow = [Ordered]@{}
|
||||||
|
foreach ($Column in 0..($Columns-1)) {
|
||||||
$Script:i = 0
|
$propertyName = "P$($Column+1)"
|
||||||
$ColumnReference = $CellsWithValues | Select-Object -ExpandProperty End | Group-Object Column |
|
$newRow.$propertyName = $worksheet.Cells[($Row+1),($Column+1)].Value
|
||||||
Select-Object @{L='Column';E={$_.Name}}, @{L='NewColumn';E={$Script:i++; $Script:i}}
|
|
||||||
|
|
||||||
$CellsWithValues | Select-Object -ExpandProperty End | Group-Object Row | ForEach-Object {
|
|
||||||
$newRow = [Ordered]@{}
|
|
||||||
|
|
||||||
foreach ($C in $ColumnReference) {
|
|
||||||
$newRow."P$($C.NewColumn)" = $worksheet.Cells[($_.Name),($C.Column)].Value
|
|
||||||
}
|
|
||||||
|
|
||||||
[PSCustomObject]$newRow
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
foreach ($Row in 0..($Rows-1)) {
|
|
||||||
$newRow = [Ordered]@{}
|
|
||||||
foreach ($Column in 0..($Columns-1)) {
|
|
||||||
$propertyName = "P$($Column+1)"
|
|
||||||
$newRow.$propertyName = $worksheet.Cells[($Row+1),($Column+1)].Value
|
|
||||||
}
|
|
||||||
|
|
||||||
[PSCustomObject]$newRow
|
[PSCustomObject]$newRow
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(!$Header) {
|
if(!$Header) {
|
||||||
@@ -136,36 +116,16 @@ function Import-Excel {
|
|||||||
|
|
||||||
if($Rows -eq 1) {
|
if($Rows -eq 1) {
|
||||||
$Header | ForEach {$h=[Ordered]@{}} {$h.$_=''} {[PSCustomObject]$h}
|
$Header | ForEach {$h=[Ordered]@{}} {$h.$_=''} {[PSCustomObject]$h}
|
||||||
}
|
} else {
|
||||||
else {
|
foreach ($Row in ($HeaderRow+1)..$Rows) {
|
||||||
if ($DataOnly) {
|
$h=[Ordered]@{}
|
||||||
$CellsWithValues = $worksheet.Cells | where Value
|
foreach ($Column in 0..($Columns-1)) {
|
||||||
|
|
||||||
$Script:i = -1
|
|
||||||
$ColumnReference = $CellsWithValues | Select-Object -ExpandProperty End | Group-Object Column |
|
|
||||||
Select-Object @{L='Column';E={$_.Name}}, @{L='NewColumn';E={$Script:i++; $Header[$Script:i]}}
|
|
||||||
|
|
||||||
$CellsWithValues | Select-Object -ExpandProperty End | Group-Object Row | ForEach-Object {
|
|
||||||
$newRow = [Ordered]@{}
|
|
||||||
|
|
||||||
foreach ($C in $ColumnReference) {
|
|
||||||
$newRow."$($C.NewColumn)" = $worksheet.Cells[($_.Name),($C.Column)].Value
|
|
||||||
}
|
|
||||||
|
|
||||||
[PSCustomObject]$newRow
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
foreach ($Row in ($HeaderRow+1)..$Rows) {
|
|
||||||
$h=[Ordered]@{}
|
|
||||||
foreach ($Column in 0..($Columns-1)) {
|
|
||||||
if($Header[$Column].Length -gt 0) {
|
if($Header[$Column].Length -gt 0) {
|
||||||
$Name = $Header[$Column]
|
$Name = $Header[$Column]
|
||||||
$h.$Name = $worksheet.Cells[$Row,($Column+1)].Value
|
$h.$Name = $worksheet.Cells[$Row,($Column+1)].Value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[PSCustomObject]$h
|
[PSCustomObject]$h
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user