c# - HRESULT से अपवाद: 0x800A03EC त्रुटि
excel exception (8)
अपनी प्रारंभिक अनुक्रमणिका जांचें। माइक्रोसॉफ्ट.ऑफिस.इंटरोप.एक्ससेल रेंज ऑब्जेक्ट्स के लिए 1 से 0 की शुरुआत। मुझे अपने लूप स्टार्ट वैल्यू के कारण एक ही त्रुटि मिली थी।
निम्नलिखित कोड के साथ एक्सेल ऐड-इन चलाते समय मुझे "HRESULT: 0x800A03EC" त्रुटि मिल रही है:
Excel.Range rng = ActiveSheet.Cells[x, y] as Excel.Range;
string before = rng.Value2;
string cleanV = System.Text.RegularExpressions.Regex.Replace(before, @"\s+", "");
rng.set_Value(cleanV);
जब त्रुटि होती है तो एक्स और वाई 1 पर सेट होते हैं, इस प्रकार एक्सेल रेंज का उल्लंघन नहीं होता है। मैंने व्यापक रूप से खोज की और सेल मान (उदाहरण के लिए सेल [x, y], range.set_Value ()) को सेट करने के कई तरीकों का प्रयास किया लेकिन नुकसान में हूं क्यों यह त्रुटि होती है और इससे कैसे बचें।
कोई भी मदद बहुत ही सराहनीय होगी।
नीचे अपवाद विवरण हैं:
System.Runtime.InteropServices.COMException was unhandled by user code
HResult=-2146827284
Message=Exception from HRESULT: 0x800A03EC
Source=""
ErrorCode=-2146827284
StackTrace:
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at Microsoft.Office.Interop.Excel.Range.set_Value(Object RangeValueDataType, Object value)
at ImportValidation.ThisAddIn.removeAnySpaces(Int32 x, Int32 y) in c:\Users\dshevelev\Documents\Visual Studio 2012\Projects\ImportValidation\ImportValidation\ThisAddIn.cs:line 354
at ImportValidation.ThisAddIn.ReadHeaders(Hashtable columnAddress) in c:\Users\dshevelev\Documents\Visual Studio 2012\Projects\ImportValidation\ImportValidation\ThisAddIn.cs:line 123
at ImportValidation.ThisAddIn.mapColumns() in c:\Users\dshevelev\Documents\Visual Studio 2012\Projects\ImportValidation\ImportValidation\ThisAddIn.cs:line 493
at ImportValidation.Ribbon1.button6_Click(Object sender, RibbonControlEventArgs e) in c:\Users\dshevelev\Documents\Visual Studio 2012\Projects\ImportValidation\ImportValidation\Ribbon1.cs:line 55
at Microsoft.Office.Tools.Ribbon.RibbonPropertyStorage.ControlActionRaise(IRibbonControl control)
at Microsoft.Office.Tools.Ribbon.RibbonPropertyStorage.ButtonClickCallback(RibbonComponentImpl component, Object[] args)
at Microsoft.Office.Tools.Ribbon.RibbonManagerImpl.Invoke(RibbonComponentCallback callback, Object[] args)
at Microsoft.Office.Tools.Ribbon.RibbonMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.Office.Tools.Ribbon.RibbonManagerImpl.System.Reflection.IReflect.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters)
InnerException:
इस लाइन में एक ही त्रुटि मिली
Object temp = range.Cells[i][0].Value;
गैर-शून्य आधारित इंडेक्स के साथ हल किया गया
Object temp = range.Cells[i][1].Value;
यह कैसे संभव है कि जिन लोगों ने इस पुस्तकालय को बनाया, सोचा कि गैर-शून्य आधारित अनुक्रमण का उपयोग करना एक अच्छा विचार था?
एक्सेल 2003 डीएलएल का उपयोग करते हुए और 257 वें कॉलम पर लिखने की कोशिश करते समय मुझे एक ही त्रुटि मिली। एक्सेल 2003 वर्कशीट के अधिकतम कॉलम को 256 तक सीमित करता है, इस प्रकार यह अपवाद उठाता है।
एक्सेल 2003 की विस्तृत सीमाओं के लिए, http://office.microsoft.com/en-001/excel-help/excel-specifications-and-limits-HP005199291.aspx
एक्सेल 2007 से शुरू होने पर, कॉलम सीमा 16384 कॉलम तक बढ़ी है, http://office.microsoft.com/en-001/excel-help/excel-specifications-and-limits-HP010073849.aspx
एक्सेल विकल्प पर जाएं> सहेजें> इस प्रारूप में फ़ाइलें सहेजें> "एक्सेल वर्कबुक (*। Xlsx)" चुनें। यह समस्या तब होती है जब आप .xlsx के बजाय एक्सेल फ़ाइल (.xls) के पुराने संस्करण का उपयोग कर रहे हैं। पुराना संस्करण एक्सेल शीट में 65k से अधिक पंक्तियों की अनुमति नहीं देता है।
एक बार जब आप .xslx के रूप में सहेजे गए हैं, तो फिर से अपना कोड निष्पादित करने का प्रयास करें।
संपादित करें ----
आपकी समस्या में और अधिक देखकर, ऐसा लगता है कि समस्या लोकेल विशिष्ट हो सकती है। क्या कोड किसी अन्य मशीन पर काम करता है? सेल में क्या मूल्य है? क्या यह डेटाटाइम प्रारूप है? यहां एक नज़र डालें
http://support.microsoft.com/kb/320369
http://blogs.msdn.com/b/eric_carter/archive/2005/06/15/429515.aspx
मुझे पता है कि यह पुराना है लेकिन सिर्फ मेरे अनुभव में पिच करने के लिए। मैं बस आज सुबह इसमें भाग गया। हमारी त्रुटि को बदलता है .xls लाइन सीमा या सरणी अनुक्रमणिका के साथ कुछ भी नहीं है। यह एक गलत सूत्र के कारण होता है।
मैं अपने ग्राहकों के बारे में एक शीट डेटाबेस से एक्सेल में निर्यात कर रहा था। कोई ग्राहक नाम =90Erickson-King
रूप में =90Erickson-King
और स्पष्ट रूप से यह डेटाबेस में एक स्ट्रिंग-प्रकार फ़ील्ड के रूप में ठीक है, हालांकि परिणामस्वरूप Excel में एक सूत्र के रूप में त्रुटि होगी। जब आप एक्सेल का उपयोग कर रहे हों, तो #N/A
दिखाने के बजाए, प्रोग्राम थोड़ी देर बाद उस 0x800A03EC त्रुटि को ठंडा कर दिया और फेंक दिया।
मैंने ग्राहक के नाम में बराबर चिह्न और डैश को हटाकर इसे सही किया। उसके बाद निर्यात अच्छी तरह से चला गया।
मुझे लगता है कि यह त्रुटि कोड थोड़ा सामान्य है क्योंकि लोगों को विभिन्न संभावित कारणों की एक श्रृंखला की रिपोर्टिंग दिखाई दे रही है।
मुझे लगता है कि यह एक पुरानी पोस्ट है, लेकिन एक ही त्रुटि का निवारण करने की कोशिश करते समय मैं अपने पास आया और मेरा समाधान साझा करना चाहता था। जैसा कि यह निकलता है, एक्सेल में निर्यात करने की कोशिश करते समय, सेल में एक टिप्पणी की शुरुआत में "=" था। उदाहरण "= अटक गया" जब टिप्पणी सिर्फ "अटक" कहा जाना चाहिए था। मुझे लगता है कि एक्सेल ने सोचा कि यह एक सूत्र था।
यह त्रुटि भी मिली ....
ऐसा तब होता है जब फ़ाइलपैथ में सहेजते हैं मेरे मामले में अमान्य वर्ण होते हैं:
path = "C:/somefolder/anotherfolder\file.xls";
दोनों के अस्तित्व पर ध्यान दें \
और /
* यदि निर्देशिका में सहेजने का प्रयास कर रहा है तो यह भी हो सकता है जो पहले से मौजूद नहीं है।
हमें एक ही समस्या थी और हमारे लिए समाधान मिला:
कृपया यह फ़ोल्डर बनाएं। सी: \ विंडोज \ SysWOW64 \ config \ systemprofile \ डेस्कटॉप · विंडोज 2008 सर्वर x86
कृपया यह फ़ोल्डर बनाएं। C: \ Windows \ System32 \ config \ systemprofile \ डेस्कटॉप