2016-06-15 127 views
0

我無法在C#中保存word文檔。文本被粘貼在Word文檔中,但保存文件是問題。從RichTextbox保存到Word文檔C#

wordDoc.Application oWord; 
wordDoc.Document oDoc; 
oWord = new wordDoc.Application(); 
oWord.Visible = true; 
oDoc = oWord.Documents.Add(); 
Clipboard.SetText(_Text); 
oDoc.ActiveWindow.Selection.Paste(); 
string fileName = @"C:\Users\Sam\Documents\NewDocument.docx"; 
oWord.Application.ActiveDocument.SaveAs2(fileName); 
oDoc.Close(); 

時發生的誤差是「其他信息:嘗試讀取或寫入受保護的存儲器這往往是一個指示其他內存已損壞。」我相信這是複製富文本框。

UPDATE 我從富文本框中複製了內容並手動執行了該方法,並且沒有錯誤地保存。

穆赫辛

System.Windows.Forms.RichTextBox rtb = new System.Windows.Forms.RichTextBox(); 
rtb.Text = _Text; 
rtb.SaveFile(@"C:\Users\Sam\Documents\NewDocument.rtf"); 

肯布里泰恩

Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application(); 

//Set animation status for word application 
winword.ShowAnimation = false; 

該錯誤也出現在ShowAnimation 我正在使用Office 2007,但是我可以使用的辦公室的任何版本。

+0

http://stackoverflow.com/questions/37496108/how-to-convert-base64-string-to-doc-docx-in-c/37496548#37496548 – mohsen

+0

@mohsen我跟着去rtb的例子和文檔中沒有文本,請參閱更新 – Bish25

+0

如果您不使用'_Text'複製/粘貼操作,代碼是否工作?那時你應該有一個空文件。 –

回答

0

我設法解決了這個問題,這與Interop.Word版本15.0.0.0上的最新版本有關。我下載了以前的版本12.0.0.0並開始工作,不得不更改一些代碼。 SaveAs2SaveAs。如果有人有我可以報告錯誤的鏈接,請發表評論。