From 57bb0491111df4d38c2c344eede574563da4d103 Mon Sep 17 00:00:00 2001 From: Edward Miller Date: Fri, 17 May 2024 22:41:53 -0500 Subject: [PATCH 1/3] open XLS as read-only --- Public/ConvertTo-ExcelXlsx.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Public/ConvertTo-ExcelXlsx.ps1 b/Public/ConvertTo-ExcelXlsx.ps1 index 36c67c47..5191d176 100644 --- a/Public/ConvertTo-ExcelXlsx.ps1 +++ b/Public/ConvertTo-ExcelXlsx.ps1 @@ -46,7 +46,7 @@ function ConvertTo-ExcelXlsx { } $Excel.Visible = $false - $null = $Excel.Workbooks.Open($xlsFile.FullName) + $null = $Excel.Workbooks.Open($xlsFile.FullName, $null, $true) $Excel.ActiveWorkbook.SaveAs($xlsxPath, $xlFixedFormat) $Excel.ActiveWorkbook.Close() $Excel.Quit() From 722516de7c22df0e5923824dc47a5f8007dc3d34 Mon Sep 17 00:00:00 2001 From: Edward Miller Date: Fri, 17 May 2024 23:24:11 -0500 Subject: [PATCH 2/3] use try-finally --- Public/ConvertTo-ExcelXlsx.ps1 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Public/ConvertTo-ExcelXlsx.ps1 b/Public/ConvertTo-ExcelXlsx.ps1 index 5191d176..4abdc208 100644 --- a/Public/ConvertTo-ExcelXlsx.ps1 +++ b/Public/ConvertTo-ExcelXlsx.ps1 @@ -45,11 +45,15 @@ function ConvertTo-ExcelXlsx { throw "Could not create Excel.Application ComObject. Please verify that Excel is installed." } - $Excel.Visible = $false - $null = $Excel.Workbooks.Open($xlsFile.FullName, $null, $true) - $Excel.ActiveWorkbook.SaveAs($xlsxPath, $xlFixedFormat) - $Excel.ActiveWorkbook.Close() - $Excel.Quit() + try { + $Excel.Visible = $false + $null = $Excel.Workbooks.Open($xlsFile.FullName, $null, $true) + $Excel.ActiveWorkbook.SaveAs($xlsxPath, $xlFixedFormat) + } + finally { + $Excel.ActiveWorkbook.Close() + $Excel.Quit() + } } } From 36b5495bd50fa5a78b5452b43e1def51055334f8 Mon Sep 17 00:00:00 2001 From: Edward Miller Date: Fri, 17 May 2024 23:28:26 -0500 Subject: [PATCH 3/3] check for null first --- Public/ConvertTo-ExcelXlsx.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Public/ConvertTo-ExcelXlsx.ps1 b/Public/ConvertTo-ExcelXlsx.ps1 index 4abdc208..578445e0 100644 --- a/Public/ConvertTo-ExcelXlsx.ps1 +++ b/Public/ConvertTo-ExcelXlsx.ps1 @@ -51,7 +51,10 @@ function ConvertTo-ExcelXlsx { $Excel.ActiveWorkbook.SaveAs($xlsxPath, $xlFixedFormat) } finally { - $Excel.ActiveWorkbook.Close() + if ($null -ne $Excel.ActiveWorkbook) { + $Excel.ActiveWorkbook.Close() + } + $Excel.Quit() } }