2011-04-03 9 views
5

सहेजते समय मैं एक प्रोग्राम लिखना चाहता हूं जो शब्द 97 फाइलों (.doc) के पूरे समूह में पढ़ेगा और उन्हें .docx फ़ाइलों के रूप में सहेजें। मैं .NET 2.0 तक ही सीमित हूं।सी # वर्ड इंटरऑप एक्सेसविलेशन अपवाद

इस स्तर पर, मैं सिर्फ यह मेरे ठूंठ कोड के साथ काम करना चाहते हैं - तो मैं जीयूआई और कई स्थानों में एक से अधिक फ़ाइलों को खोलने के लिए तर्क, आदि लिखेंगे ...

यहाँ मैं अब तक राशि है :

using MSWord = Microsoft.Office.Interop.Word; 
using MSPPoint = Microsoft.Office.Interop.PowerPoint; 

तो

OpenFileDialog ofd = new OpenFileDialog() 
{ 
    CheckFileExists = true, 
}; 

if (ofd.ShowDialog() != DialogResult.OK) 
    return; 

MSWord.Application app = new MSWord.Application(); 
MSWord.Document doc = new MSWord.Document(); 

doc = app.Documents.Open(ofd.FileName); 

try 
{ 
    doc.SaveAs2(ofd.FileName + ".docx", MSWord.WdSaveFormat.wdFormatDocument); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Could not save because:\r\n" + ex.Message, 
    ex.GetType().ToString()); 
} 

doc.Close(); 
app.Quit(); 

return; 

जहां तक ​​मेरा बता सकते हैं, शब्द दस्तावेज़ खोला जा रहा है। हालांकि, SaveAs2() कमांड AccessViolationException फेंकने लगता है और .docx सहेजा नहीं गया है।

क्या कोई मुझे बता सकता है कि उपर्युक्त कोड में क्या गलत है, यह क्यों नहीं बचा रहा है, और इसे कैसे ठीक किया जाए?

धन्यवाद

+0

सटीक अपवाद पोस्ट करने के बारे में (विवरण के साथ)? – steinar

उत्तर

10

आप डीएलएल नरक में फंस गए हैं। जब आप मशीन पर Office 2010 स्थापित करते हैं तो केवल SaveAs2() का उपयोग करें। कोई भी पूर्व संस्करण वास्तव में AccessViolation के साथ बम करने जा रहा है, विधि लागू नहीं किया गया है। उचित पीआईए संस्करण का उपयोग करने से इस समस्या से बचने के लिए एक लंबा रास्ता तय होगा, सबसे कम संस्करण का उपयोग करना सुनिश्चित करें जिसे आप समर्थन देना चाहते हैं।

SaveAs() विधि का उपयोग करें।

+0

धन्यवाद हंस। 'SaveAs() 'इंटरऑप लाइब्रेरी के संस्करण 14 में उपलब्ध नहीं है, लेकिन संस्करण 12 में उपलब्ध है। विचित्र रूप से, यह PowerPoint इंटरऑप के संस्करण 14 में उपलब्ध है। मैंने इसे बाद में 'SaveAs()' के साथ ठीक किया है जैसा आपने सुझाव दिया है और यह बहुत अच्छा काम करता है। :) – Ozzah

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

  • कोई संबंधित समस्या नहीं^_^