2008-08-26 3 views
11

समस्या: एक एक्सेल स्प्रेडशीट टेम्पलेट लोड हो रहा है। एक अलग फ़ाइल नाम के साथ सहेजें कमांड का उपयोग करना और फिर इंटरऑप ऑब्जेक्ट छोड़ना। यह मूल टेम्पलेट फ़ाइल को सहेजता है। परिणाम पसंद नहीं है। \ परीक्षण \ template.xls फ़ाइल नाम है कि में पारित हो जाता है ग है:सी # के साथ इंटरऑप का उपयोग, एक्सेल मूल बदलना सहेजें। इसे कैसे अस्वीकार करें?

public void saveAndExit(string filename) 
{   
    excelApplication.Save(filename); 
    excelApplication.Quit(); 
} 

मूल फाइल खोली सी है \ परीक्षण \ 7777 (तारीख) .xls

किसी को भी एक जवाब है?

(उत्तर मैं चुना है सबसे सही और पूरी तरह से था, हालांकि wbk.Close() यह करने के लिए पारित कर दिया मानकों की आवश्यकता है। धन्यवाद।)

उत्तर

8

एक्सेल इंटरऑप बहुत दर्दनाक है। मैंने अपनी पुरानी परियोजना को खोला, थोड़ा झुकाव किया, और मुझे लगता है कि यह वही है जो आप खोज रहे हैं। अन्य टिप्पणीकार सही हैं, लेकिन, कम से कम मेरे अनुभव में, SaveAs() को कॉल करने के लिए बहुत कुछ है, यदि आप वीबीए में एक ही ऑब्जेक्ट्स (इंटरऑप रैपर के बिना) का उपयोग करते हैं तो आप अपेक्षा करते हैं।

Microsoft.Office.Interop.Excel.Workbook wbk = excelApplication.Workbooks[0]; //or some other way of obtaining this workbook reference, as Jason Z mentioned 
wbk.SaveAs(filename, Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, 
      Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing); 
wbk.Close(); 
excelApplication.Quit(); 

उन सभी प्रकार से प्यार करना होगा। मिसिंग। लेकिन मुझे लगता है कि वे जरूरी हैं।

0

आप वर्कशीट से SaveAs की कोशिश की?

1

एक्सेल अनुप्रयोग का उपयोग करने के बजाय, आप वर्कबुक ऑब्जेक्ट का उपयोग कर सकते हैं और SaveAs() विधि को कॉल कर सकते हैं। आप वहां अद्यतन फ़ाइल नाम पास कर सकते हैं।

0
  1. डिट्टो SaveAs पर
  2. जब भी मैं इंटरॉप मैं एक अलग VB.NET वर्ग पुस्तकालय बना सकता हूँ और VB में तर्क लिखने के लिए की है। यह सी #
में परेशानी के लायक नहीं है
संबंधित मुद्दे