我将单词内容复制到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();
}
}
答案 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中打开。
不会失败。
问候。