2013-03-19 71 views
1

我將word內容複製到了richtextbox中,但沒有完全丟失格式,但現在我正在編輯richtextbox中的內容。RichTextBox在導出到word時丟失了所有格式

現在我想將richtextbox內容導出爲word文檔,而不會丟失任何格式,在C#中使用WinForms。你怎麼做呢?

WordApp.ActiveDocument.SaveAsQuickStyleSet("abc.doc"); 

Range rng = WordApp.ActiveDocument.Range(0, 0); 


for (int i = 0; i < _dgvrow.Cells.Count; ++i) 
{ 
    // add code to loop thru controls and TypeText into word document 

    Label lb = (Label)this.Controls["lblfield" + (i+1).ToString()]; 
    rng.Text += lb.Text; 
    rng.Select(); 

    Control ctrl = this.Controls["txtfield" + (i+1).ToString()]; 

    if(ctrl is RichTextBox) 
    { 
     RichTextBox rb = (RichTextBox)ctrl; 
     rng.Text += rb.Text + Environment.NewLine; 
     rng.Select(); 
    } 
    else if (ctrl is TextBox) 
    { 
     TextBox rb = (TextBox)ctrl; 
     rng.Text += rb.Text + Environment.NewLine; 
     rng.Select(); 
    } 
} 
+0

嘗試'rb.Rtf'而不是'rb.Text'。 – 2013-03-19 22:00:15

回答

1

Text屬性只返回純文本。使用Rtf屬性以返回rtf格式的文本。

不幸的是,Word沒有插入rtf文本的方法。但是你可以粘貼剪貼板上的rtf-text

Clipboard.SetText(rb.Rtf, TextDataFormat.Rtf); 
rng.Paste() 
0

你希望得到您的控制rich text format,而不僅僅是plain text

rb.Text替換爲rb.Rtf

從MSDN:

Text屬性不返回有關應用於RichTextBox的內容格式的任何信息。要獲得富文本格式(RTF)代碼,請使用Rtf屬性。

此外,如果你想save the rich text format to a file,這是建於:

rb.SaveFile(yourFilePath); 
-1

隨着你跑過來看,我可以建議我編碼正確。

將保存文件方法的編碼富文本框保存爲.rtf或.doc,然後在Microsoft Word中打開。

不會失敗。

有關。

+2

這不是一個簡單的解讀......第一句話是相當不可讀的。我會編輯它,但我不知道你想說什麼.... – 2017-08-22 13:19:04