2010-11-24 10 views
5

कोडिंग एमएस ऑफ़िस इंटरॉप स्थिरांक के बजाय कठिन के लिए मूल्य PowerShell का उपयोग करना अवलोकन किया जा रहा है, यह बहुत आसान बनाने के लिए, कहते हैं, एक्सेल आवेदन वर्ग का एक उदाहरण है और यह जोड़ तोड़ शुरू है:उन्हें

$app = New-Object -ComObject "Excel.Application" 

हालांकि, अगर मुझे xlDoubleQuote या xlDelimited जैसे स्थिरांक का उपयोग करने की आवश्यकता है - ऐसा लगता है कि मुझे उन्हें हार्ड कोड करने के लिए मजबूर होना पड़ता है। मैं वास्तव में की तरह कुछ करने में सक्षम होना चाहते हैं:

$constants = New-Object -ComObject "Excel.Constants" 
$constants.xlDoubleQuote 

और देखते हैं कि यह 1. का मूल्य वापस दुर्भाग्य से मैं एक गणना का एक उदाहरण नहीं बना सकते हैं, और वहाँ होना प्रतीत नहीं होता है आप की तरह इसे संदर्भ के लिए एक रास्ता होगा एक सामान्य नेट वर्ग पुस्तकालय:

[Excel.Constants]::xlDoubleQuote 

वहाँ किसी तरह गतिशील PowerShell में है कि गणन आयात करने के लिए है? शायद COM की बजाय प्रबंधित पुस्तकालयों के माध्यम से?

उत्तर

4

कीथ ने आपको पहले ही जवाब दिया है, यहां एक और विकल्प है। आप वस्तु $ xlConstants पर टैब पूरा होने का उपयोग कर सकते स्थिरांक प्राप्त करने के लिए:

$xl = New-Object -ComObject Excel.Application 
$constants = $xl.gettype().assembly.getexportedtypes() | where-object {$_.IsEnum -and $_.name -eq 'constants'} 

$pso = new-object psobject 
[enum]::getNames($constants) | foreach { $pso | Add-Member -MemberType NoteProperty $_ ($constants::$_) } 
$xlConstants = $pso 
8

एक्सेल के लिए प्राथमिक इंटरऑप असेंबली का उपयोग करें। यदि आपके पास कार्यालय स्थापित है तो ये जीएसी में होना चाहिए। इस तरह प्रयोग करें:

Add-Type -AssemblyName Microsoft.Office.Interop.Excel 
[int][Microsoft.Office.Interop.Excel.Constants]::xlDoubleQuote 
+1

या: [Microsoft.Office.Interop.Excel.Constants] :: xlDoubleQuote.Value__ –

1

कीथ और शे सही जवाब दे दिया, हालांकि, इस पर ध्यान दें:

Excel 2003 या Excel 2007 का उपयोग करते समय, कार्यालय प्राथमिक इंटरॉप असेंबली (पीआईए) मशीन पर स्थापित किया जाना चाहिए। माइक्रोसॉफ्ट से उपलब्ध पुनर्वितरण योग्य संस्करण हैं। अधिक जानकारी के लिए इस stackoverflow.com पोस्टिंग देखें:

Different Interop references on two different computers doesn't work

संबंधित मुद्दे