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

C# 导出到word时,RichTextBox将丢失所有格式,c#,ms-word,ms-office,richtextbox,C#,Ms Word,Ms Office,Richtextbox,我将word内容复制到richtextbox而没有完全丢失格式,但现在我正在编辑richtextbox中的内容 现在,我想使用WinForms将richtextbox内容导出到word文档中,而不丢失任何格式设置。你是怎么做到的 WordApp.ActiveDocument.SaveAsQuickStyleSet("abc.doc"); Range rng = WordApp.ActiveDocument.Range(0, 0); for (int i = 0; i < _dgvro

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

现在,我想使用WinForms将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();
    }
}
你想得到你的控制权,而不仅仅是控制权

将rb.Text替换为rb.Rtf

从MSDN:

Text属性不返回有关应用于RichTextBox内容的格式的任何信息。要获取RTF代码的富文本格式,请使用RTF属性

此外,如果您愿意,这是内置的:

rb.SaveFile(yourFilePath);
RichTextBox的Text属性只返回纯文本。使用Rtf属性返回Rtf格式的文本

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

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

通过运行查看您的发言,我可以建议正确编码

使用“保存文件”方法将编码的富文本框保存为.rtf或.doc,然后在microsoft word中打开

我们不会失败


关于。

请尝试rb.Rtf而不是rb.Text。这不是一个容易阅读的。。。第一句话很难读。我会编辑它,但我不知道你想说什么。。。。