mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-06 00:23:20 +00:00
39 lines
1.4 KiB
PowerShell
39 lines
1.4 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,
|
|
[Switch]$ReZip
|
|
)
|
|
|
|
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
|
|
}
|
|
if ($ReZip) {
|
|
Invoke-ExcelReZipFile -ExcelPackage $ExcelPackage
|
|
}
|
|
$ExcelPackage.Dispose()
|
|
if ($Show) { Start-Process -FilePath $SaveAs }
|
|
}
|
|
}
|