[英]Saving a .xlsm file type in Excel using Windows Powershell
大家好,我正在 Windows powershell 中打開一個 .xlsm 工作表,然后將數據從讀取主機變量寫入各種單元格。 一切正常,除非我使用 powershell 保存文件。 它給了我下面引用的這個錯誤,並拒絕以 .xlsm 格式保存它,該文件已經是一個 .xlsm 文件,所以我沒有轉換它。 使用此代碼保存 .xlsx 格式時我沒有問題,這可能是我的問題。 我是個新手請原諒我的無知。
“此擴展名不能與選定的文件類型一起使用。在文件名文本框中更改文件擴展名,或通過更改另存為類型來選擇不同的文件類型。”
這是我用來保存到 .xlsm 的代碼。 我刪除了很多文件結構以保護隱私並使其更簡單,我的代碼工作正常但不是保存到 .xlsm 部分,請幫助...
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlWorkbookDefault
$XL = New-Object -comobject Excel.Application
$Num = Read-Host - Prompt 'What is the number?'
$FilePath = "V:\$fileName.xlsm"
$workbook = $XL.Workbooks.Open($FilePath)
$WS = $workbook.Worksheets("Sheet1")
$ws.Cells.Item(2,29) = "$Num"
$XL.DisplayAlerts = $False
$WB.SaveAs($FilePath)
$WB.Close
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($XL) | Out-Null
解決方案:
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbookMacroEnabled
$XL = New-Object -comobject Excel.Application
$Num = Read-Host - Prompt 'What is the number?'
$FilePath = "V:\$fileName.xlsm"
$workbook = $XL.Workbooks.Open($FilePath)
$WS = $workbook.Worksheets("Sheet1")
$ws.Cells.Item(2,29) = "$Num"
$XL.DisplayAlerts = $False
$WB.SaveAs($FilePath,$xlFixedFormat)
$WB.Close
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($XL) | Out-Null
從XlFileFormat
文檔中,您需要為 XLSM 文件xlOpenXMLWorkbookMacroEnabled
xlOpenXMLWorkbookMacroEnabled。
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbookMacroEnabled
...
$WB.SaveAs($FilePath,$xlFixedFormat)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.