c# - Worksheet is not getting deleted - adding a new one causes a name-collision error -


  foreach (Excel.Worksheet पत्रक में m_objExcel.Sheets) {if (sheet.Name == "इससे पहले और amp; ल्यूब वेट के बाद ") {//sheet.Delete (); । (Excel.Worksheet) m_objExcel.Sheets [6]) को हटाएँ (); m_objSheet = (एक्सेल.Worksheet) m_objSheets.Add (m_objSheets [6], टाइप करें। मिसिंग, टाइप। मिसिंग, टाइप। मिसिंग); M_objSheet.Name = "ल्यूब वज़न से पहले और बाद में"; }}   

ऊपर दिए गए कोड एक मौजूदा कार्यपत्रक को नए वर्कशीट के साथ ओवरराइट करने के लिए उपयोग किया जाता है। मैंने रेखा से लाइन डिबग करने की कोशिश की है और सभी कोड अच्छी तरह से काम कर रहे हैं लेकिन वर्कशीट एक ही नाम (नोटेड फ्रेमवर्क 2.0) के साथ अन्य शीट जोड़ने से पहले कभी नहीं हटाया जाता।

अपवाद संदेश तब होता है

त्रुटि: शीट को दूसरी शीट के रूप में नामित नहीं किया जा सकता

मेरा मानना ​​है कि इसका कारण यह है पिछले वर्कशीट को ठीक से नहीं हटाया गया है।

आपका वर्तमान समाधान मुझे अक्षम दिखता है ... ऐसा लगता है आप जो भी करने की कोशिश कर रहे हैं, वह आपकी शीट साफ है ....

कक्ष ...

  foreach (Excel.Worksheet) हटाने का प्रयास करें पत्रक में m_objExcel.Sheets) {यदि (sheet.Name == "पहले और amp; के बाद चिकनाई वजन") {sheet.Cells.Delete (); }}   

फिर भी, आप अपनी शीट को हटाना चाहते हैं, तो याद रखें यह एक बुरा तरीका है ...

  (Excel.Worksheet) । m_objExcel.Sheets [6]) को हटाएँ ();   

यदि आप शीट को हटाने के लिए इस पद्धति का उपयोग कर रहे हैं, तो आपको संग्रह पर पुनरावृति करने की आवश्यकता नहीं है। यदि कुछ शीट्स को जोड़ दिया गया है या हटा दिया गया है तो आपका संग्रह इंडेक्स बदल सकता है, इसलिए आपकी संदिग्ध 6 वीं शीट अब और नहीं रह सकती है ...

सही दृष्टिकोण है ( सुनिश्चित नहीं है कि यह आपके कोड में टिप्पणी क्यों करता है )

  पत्रक। हटाएं ();    

Comments

Popular posts from this blog

asp.net - Procedure or function "Procedure name" expects a parameter "Param name" which was not supplied occurs rarely -

c# - The item with identity 'Id' already exists in the metadata collection. Parameter name: item -

c++ - Redefined variable in the other module -