मैं एक्सेल powershell स्क्रिप्ट से CorruptLoad
paramterer साथ फ़ाइल खोलने की आवश्यकता में उत्कृष्टता। लेकिन जब मैं इसे बनाने की कोशिश करता हूं, तो मुझे Exception calling "Open" with "15" argument(s): "open method workbooks class failed"
त्रुटि मिलती है। यह त्रुटि केवलतब होता है जब मैं सभी 15 तर्क के साथ Open
कहते हैं। और जब मैं 1512 तर्कों के साथ VB.net
प्रोग्राम के साथ एक ही एक्सेल फ़ाइल खोलने की कोशिश करता हूं या नामित तर्क CorruptLoad
के मान निर्दिष्ट करने के साथ, कोई समस्या नहीं है!खोलने में त्रुटि powershell
powershell v 4.0
, Office 2010 SP2 और .NET Framework 4.5.2
साथ उपयोग कर रहा हूँ ।
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
try
{
$missing = [System.Type]::Missing
# $wb = $excel.Workbooks.Open("d:\temp\start_instrument.xls", $missing, $missing, $missing, $missing,
# $missing, $missing, $missing, $missing, $missing,
# $missing, $missing, $missing, $missing, $missing)
# $wb = $excel.Workbooks.Open("d:\temp\start_instrument.xls", $missing, $missing, $missing, $missing,
# $missing, $missing, $missing, $missing, $missing,
# $missing, $missing, $missing, $missing, 1)
$XlCorruptLoad = "Microsoft.Office.Interop.Excel.XlCorruptLoad" -as [type]
$wb = $excel.Workbooks.Open("d:\temp\start_instrument.xls", $missing, $missing, $missing, $missing,
$missing, $missing, $missing, $missing, $missing,
$missing, $missing, $missing, $missing, $XlCorruptLoad::xlRepairFile)
}
catch
{
Write $Error[0].ToString()
}
# some stuff
if ($excel -ne $null)
{
$excel.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel) | Out-Null
$excel = $null
}
[System.GC]::Collect() | Out-Null
[System.GC]::WaitForPendingFinalizers() | Out-Null
मैं विचार क्यों त्रुटि होती नहीं है:
यहाँ मेरी powershell
कोड है। मुझे किसी भी सलाह और धारणाओं से प्रसन्नता होगी!
देखते हैं कि आप 'CorruptLoad' कारण है कि आप यह तर्क सूची में निर्दिष्ट नहीं किया है उपयोग करने के लिए की जरूरत है? आपके पास यह '$ गायब' है? https://msdn.microsoft.com/en-us/library/office/ff193596.aspx। – Matt
@ मैट, मैंने 'ओपन' फ़ंक्शन को कॉल करने के सभी प्रकारों को आजमाया। मैंने इसे दिखाने के लिए अपना कोड नमूना बदल दिया। – Indian
स्पष्टीकरण के लिए धन्यवाद। – Matt