导出到word时,RichTextBox丢失所有格式

时间:2013-03-19 21:53:41

标签: c# ms-word ms-office richtextbox

我将单词内容复制到richtextbox而没有完全失去格式,但现在我正在编辑richtextbox中的内容。

现在,我想在使用WinForms的C#中将richtextbox内容导出到word文档而不会丢失任何格式。你是怎么做到的?

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();
    }
}

3 个答案:

答案 0 :(得分:2)

Text的{​​{1}}属性只返回纯文本。使用RichTextBox属性返回rtf格式的文本。

不幸的是,Word没有插入RTF文本的方法。但是,您可以从剪贴板粘贴RTF文本

Rtf

答案 1 :(得分: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);

答案 2 :(得分:-1)

通过运行查看你的说法我可以建议我编码正确。

使用保存文件方法将编码的富文本框保存为.rtf或.doc,然后在Microsoft Word中打开。

不会失败。

问候。