我发现了很多关于如何保存Excel并安全地关闭过程的文章,但是电子表格仍然没有保存Excel过程。
对此事的任何想法都将不胜感激。
$file = "C:\temp\testexcel.xls"
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $true
$objExcel.DisplayAlerts = $false
$WorkBook = $objExcel.Workbooks.Open("$file")
$workbook.SaveAs("$file")
$workbook.Close($true)
$objExcel.quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel)
Remove-Variable objExcel
答案 0 :(得分:1)
将工作簿另存为另一个文件时指定file format:
$workbook.SaveAs($file, -4143)
如果您只想保存文件,请使用Save()
,而不是SaveAs()
:
$workbook.Save()
此外,在释放COM对象后运行垃圾回收器:
[Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel)
Remove-Variable objExcel
[GC]::Collect()
[GC]::WaitForPendingFinalizers()