1

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

现在我想在 C# 中使用 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();
    }
}
4

3 回答 3

2

The Text property of a RichTextBox just returns plain text. Use the Rtf property to return rtf-formatted text.

Unfortunately, Word does not have a method for inserting RTF text. However you can paste RTF-text from the clipboard

Clipboard.SetText(rb.Rtf, TextDataFormat.Rtf);
rng.Paste()
于 2013-03-19T22:25:36.260 回答
0

您想获得控件的富文本格式,而不仅仅是纯文本

替换rb.Textrb.Rtf

来自 MSDN:

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

此外,如果您想将富文本格式保存到文件中,它是内置的:

rb.SaveFile(yourFilePath);
于 2013-03-19T22:04:21.713 回答
-2

通过运行查看您的说法,我可以建议我正确编码的内容。

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

不会失败。

带着敬意。

于 2017-08-22T13:13:41.580 回答