2013-03-19 72 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