2012-08-29 20 views
5

में किसी शब्द दस्तावेज़ को सीधे निर्यात कैसे करूं, मैंने इसमें कुछ डेटा के साथ एक रिपोर्ट बनाई है। मैं नहीं चाहता कि उपयोगकर्ता को फॉर्म निर्यात बटन पर क्लिक करना होगा और डेटा को दस्तावेज़ दस्तावेज़ में निर्यात करना होगा। फ़ाइल ठीक से समस्या बचाती है जब मैं दस्तावेज़ को शब्द में खोलने के लिए जाता हूं, जो रिपोर्ट को सहेजने वाली रिपोर्ट के बजाय कचरा का एक गुच्छा है।मैं रिपोर्ट दर्शक

मेरे बटन को बचाने के इस तरह दिखता है:

SaveFileDialog saveFileDialog = new SaveFileDialog(); 
saveFileDialog.InitialDirectory = @“C:\”; 
saveFileDialog.RestoreDirectory = true; 
savefileDialog.Title = “Browse Text Files”; 
saveFileDialog.DefaultExt = “docx”; 

saveFileDialog.Filter = “Word Doc (*.docx)|*.docx|PDF (*.pdf)| *.pdf”; 
saveFileDialog.checkFileExists = false; 
saveFileDialog.CheckPathExists = true; 

Warning[] warnings; 
string[] streams; 
string mimeType; 
string encoding; 
string extension; 

byte[] bytes = reportViewer1.LocalReport.Render(“Word”, null, out mimeType, out encoding, out extension, out streams, out warnings); 

if (saveFileDialog.ShowDialog() == DialogResult.OK) 
{ 
var filename = saveFileDialog.FileName; 
System.IO.FileStream file = new FileStream(filename, FileMode.Create); 
file.Write(bytes, 0, bytes.length); 
file.close(); 
} 

कोई सुझाव?

+0

क्या "चीजें परिभाषित नहीं हैं"? क्या आप विशिष्ट हो सकते हैं? – codingbiz

+0

अपनी त्रुटियों को अनदेखा न करें। * क्या * यह कह रहा है कि अपरिभाषित है। यह आपकी मदद करने की कोशिश कर रहा है ... –

+0

DropDownList1, httpContext.Current.Response.BinaryWrite (बाइट्स) अपरिभाषित हैं – Robert

उत्तर

3

स्थानीय रिपोर्टपोर्ट शब्द के लिए केवल पुराने शब्द प्रारूप (संस्करण 6, मुझे विश्वास है) में निर्यात करता है। एक्सएमएल (डॉक्क्स एक्सटेंशन) के आधार पर नए, खुले प्रारूप समर्थित नहीं हैं। तो एक डॉक्स एक्सटेंशन होने के कारण, शब्द नए प्रारूप की अपेक्षा कर रहा है, पुराना नहीं, इसलिए यह सब कुछ बकवास के रूप में व्याख्या करता है। एक तरफ के रूप में, Word दस्तावेज़ पर docx एक्सटेंशन को .zip में बदलें, सामग्री निकालें और परिणामी फ़ोल्डर्स के चारों ओर एक पोक रखें। यह काफी दिलचस्प है जो अब दिखाई दे रहा है।

1

तो इस बात पर काम का बहुत कुछ करने के बाद मैंने पाया कि इस लाइन को बदलने:

saveFileDialog.Filter = “Word Doc (*.docx)|*.docx|PDF (*.pdf)| *.pdf”; 

मेरी समस्या को
saveFileDialog.Filter = “Word Doc (*.doc)|*.doc|PDF (*.pdf)| *.pdf”; 

फिक्स। किसी भी कारण से .docx फ़ाइल में सहेजने के कारण डेटा दूषित हो जाता है।

10

मुझे पता है कि यह पुराना है और पहले से ही उत्तर दिया गया है, लेकिन मैंने इस समस्या पर ठोकर खाई है और आपको रेंडर कॉल में "वर्ड" के बजाय "WORDOPENXML" का उपयोग करने की आवश्यकता है। इस तरह यह docx को निर्यात करेगा।

क्या एक्सटेंशन उपलब्ध हैं यह देखने के लिए ListRenderingExtensions का उपयोग करें।