使用 Windows Powershell 在 Excel 中保存 .xlsm 文件类型
Saving a .xlsm file type in Excel using Windows Powershell
大家好,我在 windows powershell 中打开一个 .xlsm sheet,然后将数据从读取主机变量写入各种单元格。一切正常,除非我使用 powershell 保存文件。它给了我下面引用的这个错误,并拒绝以 .xlsm 格式保存它,该文件已经是 .xlsm 文件,所以我没有转换它。使用此代码保存 .xlsx 格式时我没有问题,这可能是我的问题。有点菜鸟见谅
“此扩展名不能与 selected 文件类型一起使用。在文件名文本框中更改文件扩展名或通过更改另存为类型 select 不同的文件类型。 “
这是我用来保存到 .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
从 XlFileFormat
docs 开始,您希望 xlOpenXMLWorkbookMacroEnabled
用于 XLSM 文件。
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbookMacroEnabled
...
$WB.SaveAs($FilePath,$xlFixedFormat)
大家好,我在 windows powershell 中打开一个 .xlsm sheet,然后将数据从读取主机变量写入各种单元格。一切正常,除非我使用 powershell 保存文件。它给了我下面引用的这个错误,并拒绝以 .xlsm 格式保存它,该文件已经是 .xlsm 文件,所以我没有转换它。使用此代码保存 .xlsx 格式时我没有问题,这可能是我的问题。有点菜鸟见谅
“此扩展名不能与 selected 文件类型一起使用。在文件名文本框中更改文件扩展名或通过更改另存为类型 select 不同的文件类型。 “
这是我用来保存到 .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
从 XlFileFormat
docs 开始,您希望 xlOpenXMLWorkbookMacroEnabled
用于 XLSM 文件。
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbookMacroEnabled
...
$WB.SaveAs($FilePath,$xlFixedFormat)