gpt4 book ai didi

PowerShell中的Excel workbooks.saveas()错误

转载 作者:行者123 更新时间:2023-12-02 23:04:13 29 4
gpt4 key购买 nike

我正在尝试将 .xls 文件转换为 .xlxs
我尝试了此代码的许多变体,但每次我遇到此错误消息时:

Exception lors de l'appel de « SaveAs » avec « 2 » argument(s) : « La méthode SaveAs de la classe Workbook a échoué. » Au caractère C:\temp\xlsx.ps1:18 : 6

  • try{$opendoc.saveas($basename, $saveFormat)}
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    • CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    • FullyQualifiedErrorId : ComMethodTargetInvocation


这是我的代码:
$excel = new-object -comobject excel.application
$excel.Visible = $false
$saveFormat = "xlOpenXMLWorkbook";

ls c:\temp\*.xls | %{
$opendoc = $excel.workbooks.open($_.FullName)
$excel.DisplayAlerts =$false
$basename = $_.basename
try{
$opendoc.saveas($basename,$saveFormat,$null,$null,$false,$false,"xlNoChange","xlLocalSessionChanges")
# tried this one and got same error : $opendoc.saveas($basename, $saveFormat)}
}
catch{
$opendoc.close();$excel.quit()
$_
}
$opendoc.close();
}

$excel.quit()

你知道工作配方吗?

最佳答案

传递到 SaveAs 的常量方法通常表示数值,而不是字符串。在您的情况下,第二个参数可能应该是 51 ( xlWorkbookDefault ),如文档中所述 here .其他两个字符串( "xlNoChange" ,其中 should be 1"xlLocalSessionChanges" ,其中 should be 2 )也是如此。您需要使用数值,或自己定义常量,例如:

$xlWorkbookDefault     = 51
$xlNoChange = 1
$xlLocalSessionChanges = 2

此外,您不能使用 $null对于应该保留默认值的参数。使用 [Type]::Missing 反而。

改变这个:
$opendoc.saveas($basename,$saveFormat,$null,$null,$false,$false,"xlNoChange","xlLocalSessionChanges")

进入这个:
$opendoc.SaveAs($basename, 51, [Type]::Missing, [Type]::Missing, $false, $false, 1, 2)

关于PowerShell中的Excel workbooks.saveas()错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288372/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com