我正在使用PowerShell解鎖鎖定的Excel電子表格。當我從作業運行腳本時(使用自己作爲代理用戶),腳本的Excel部分不會運行。但是,當我直接從命令行執行相同的腳本時,它工作正常。我的代碼是:Excel.Application無法在使用SQL作業的PowerShell中工作,但可以從命令行運行
#Unlock Attatchment
$x = New-Object -comObject Excel.Application
$x.visible = $false
$x.DisplayAlerts = $False
$workbook = $x.Workbooks.Open($spreadsheetFileName,1,$false,
5,$spreadsheetPassword,$spreadsheetPassword)
$workbook.SaveAs($tmpFileName,1,$null,$null,$null,$null,$null,
$x.XlSaveConflictResolution.xlLocalSessionChanges,
$null,$null,$null,$null)
$x.Workbooks.Close()
$x.Quit()
編輯:我添加了日誌記錄。以下是日誌結果:
Exception calling "Open" with "6" argument(s): Microsoft Office Excel cannot access the file "_____"
There are several possible reasons:
• The file name or path does not exist.
• The file is being used by another program.
• The workbook you are trying to save has the same name as a currently open workbook.
我認爲,因爲某些原因(也許是64位SQL)的COM對象未在SQL作業可裝載。您是否嘗試將代碼放入try {} catch {}中以僅記錄異常? – JPBlanc 2011-04-02 08:13:18