mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-06 00:23:20 +00:00
34 lines
1.3 KiB
PowerShell
34 lines
1.3 KiB
PowerShell
function Close-ExcelPackage {
|
|
[CmdLetBinding()]
|
|
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","")]
|
|
param (
|
|
[parameter(Mandatory=$true, ValueFromPipeline=$true)]
|
|
[OfficeOpenXml.ExcelPackage]$ExcelPackage,
|
|
[switch]$Show,
|
|
[Switch]$NoSave,
|
|
$SaveAs,
|
|
[ValidateNotNullOrEmpty()]
|
|
[String]$Password,
|
|
[switch]$Calculate
|
|
)
|
|
if ( $NoSave) {$ExcelPackage.Dispose()}
|
|
else {
|
|
if ($Calculate) {
|
|
try { [OfficeOpenXml.CalculationExtension]::Calculate($ExcelPackage.Workbook) }
|
|
catch { Write-Warning "One or more errors occured while calculating, save will continue, but there may be errors in the workbook."}
|
|
}
|
|
if ($SaveAs) {
|
|
$SaveAs = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($SaveAs)
|
|
if ($Password) {$ExcelPackage.SaveAs( $SaveAs, $Password ) }
|
|
else {$ExcelPackage.SaveAs( $SaveAs)}
|
|
}
|
|
else {
|
|
if ($Password) {$ExcelPackage.Save($Password) }
|
|
else {$ExcelPackage.Save() }
|
|
$SaveAs = $ExcelPackage.File.FullName
|
|
}
|
|
$ExcelPackage.Dispose()
|
|
if ($Show) {Start-Process -FilePath $SaveAs }
|
|
}
|
|
}
|