2013-07-01 6 views
7

मैं Microsoft Office Interop उपयोग कर रहा हूँ संपादित करने के लिए कुछ फ़ाइलों को उत्कृष्टता और जब मैं उन्हें बंद मैंएक संवाद बॉक्स

outputExcelWorkBook.Close(false, paramMissing, paramMissing); 

का उपयोग लेकिन एक संवाद बॉक्स अभी भी ऊपर आता है बिना सी # Excel वर्कबुक से बाहर निकलने की कोशिश कर रहा है, भले ही मैं पारित कर दिया पहले पैरामीटर के रूप में false। मैंने इसे true के साथ भी कोशिश की है और इसे दूसरे पैरामीटर के रूप में फ़ाइल पथ दे रहा है लेकिन दोनों मामलों में एक संवाद बॉक्स मुझे पूछता है कि क्या मैं बंद करने से पहले सहेजना चाहता हूं। क्या कोई मुझे बता सकता है कि यहाँ क्या हो रहा है?

उत्तर

12

Application.DisplayAlerts संपत्ति false पर सेट करने का प्रयास करें। आप अपने प्रॉपर्टी रूटीन के बहुमत के लिए इस संपत्ति को false पर सेट करने के लिए उपयोगी पा सकते हैं। लौटने से पहले पिछले मान को पुनर्स्थापित करना याद रखें।

Application applicationInstance = ...; 
var oldDisplayAlertsValue = applicationInstance.DisplayAlerts; 
applicationInstance.DisplayAlerts = false; 
try 
{ 
    outputExcelWorkBook.Close(false, Missing.Value, Missing.Value); 
} 
finally 
{ 
    appliationInstance.DisplayAlerts = oldDisplayAlertsValue; 
} 
3

यह मेरे लिए काम किया:

  1. आरंभ एक्सेल

  2. ओपन कार्यपुस्तिका

  3. सक्रिय पत्रक प्राप्त करें और सेल एक संपादन (जोड़ा "पाठ" बनाने [ 2,2])

  4. एक पैरा के साथ कार्यपुस्तिका बंद करें सत्य का मीटर जिसका अर्थ है "परिवर्तनों को सहेजें"

  5. कोई संवाद बॉक्स प्रदर्शित नहीं होता है।

नोट: जब मैं पैरामीटर के बिना बंद करता हूं तो मुझे परिवर्तनों को सहेजने के लिए कहा जाता है।

Microsoft.Office.Interop.Excel.Application excel = new Application(); 
    Microsoft.Office.Interop.Excel.Workbook workBook = 
     excel.Workbooks.Open(fileLocation); 
    Microsoft.Office.Interop.Excel.Worksheet sheet = workBook.ActiveSheet; 
    sheet.Cells[2, 2] = "Text"; 
    workBook.Close(true); 
    excel.Quit(); 
संबंधित मुद्दे