mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-06 00:23:20 +00:00
Implement Set Column by range in Add-ExcelTable + simplify adding table from Export-Excel
This commit is contained in:
@@ -51,7 +51,7 @@ function Add-ExcelTable {
|
||||
}
|
||||
#it seems that show total changes some of the others, so the sequence matters.
|
||||
if ($PSBoundParameters.ContainsKey('ShowHeader')) {$tbl.ShowHeader = [bool]$ShowHeader}
|
||||
if ($PSBoundParameters.ContainsKey('TableTotalSettings')) {
|
||||
if ($PSBoundParameters.ContainsKey('TableTotalSettings') -And $Null -ne $TableTotalSettings) {
|
||||
$tbl.ShowTotal = $true
|
||||
foreach ($k in $TableTotalSettings.keys) {
|
||||
|
||||
@@ -99,10 +99,12 @@ function Add-ExcelTable {
|
||||
|
||||
# Set comment on totals row
|
||||
If ($TableTotalSettings[$k] -is [HashTable] -and $TableTotalSettings[$k].Keys -contains "Comment" -and ![String]::IsNullOrEmpty($TableTotalSettings[$k]["Comment"])) {
|
||||
$ColumnLetter = [officeOpenXml.ExcelAddress]::GetAddressCol(($tbl.columns | ? { $_.name -eq $k }).Id, $False)
|
||||
$CommentRange = "{0}{1}" -f $ColumnLetter, $tbl.Address.End.Row
|
||||
|
||||
$CellCommentParams = @{
|
||||
Worksheet = $tbl.WorkSheet
|
||||
Row = $tbl.Address.End.Row
|
||||
ColumnNumber = ($tbl.columns | ? { $_.name -eq $k }).Id
|
||||
Range = $CommentRange
|
||||
Text = $TableTotalSettings[$k]["Comment"]
|
||||
}
|
||||
|
||||
|
||||
@@ -212,13 +212,8 @@
|
||||
$row ++
|
||||
$null = $ws.Cells[$row, $StartColumn].LoadFromDataTable($InputObject, $false )
|
||||
if ($TableName -or $PSBoundParameters.ContainsKey('TableStyle')) {
|
||||
if ($PSBoundParameters.ContainsKey('TableTotalSettings')) {
|
||||
Add-ExcelTable -Range $ws.Cells[$ws.Dimension] -TableName $TableName -TableStyle $TableStyle -TableTotalSettings $TableTotalSettings
|
||||
}
|
||||
Else {
|
||||
Add-ExcelTable -Range $ws.Cells[$ws.Dimension] -TableName $TableName -TableStyle $TableStyle
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
#Change TableName if $TableName is non-empty; don't leave caller with a renamed table!
|
||||
@@ -430,13 +425,8 @@
|
||||
if ($null -ne $TableName -or $PSBoundParameters.ContainsKey('TableStyle')) {
|
||||
#Already inserted Excel table if input was a DataTable
|
||||
if ($InputObject -isnot [System.Data.DataTable]) {
|
||||
if ($PSBoundParameters.ContainsKey('TableTotalSettings')) {
|
||||
Add-ExcelTable -Range $ws.Cells[$dataRange] -TableName $TableName -TableStyle $TableStyle -TableTotalSettings $TableTotalSettings
|
||||
}
|
||||
else {
|
||||
Add-ExcelTable -Range $ws.Cells[$dataRange] -TableName $TableName -TableStyle $TableStyle
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($AutoFilter) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user