Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将richtext粘贴到MS Word中;表格「;使用SelectContentControlsByTag和formattedText_C#_Forms_Ms Word_Rtf - Fatal编程技术网

C# 如何将richtext粘贴到MS Word中;表格「;使用SelectContentControlsByTag和formattedText

C# 如何将richtext粘贴到MS Word中;表格「;使用SelectContentControlsByTag和formattedText,c#,forms,ms-word,rtf,C#,Forms,Ms Word,Rtf,在ms word中 我正在尝试复制保存在数据库中的richtext字符串 但看起来我无法直接设置formattedText,因为会出现错误: 错误CS0029无法将类型“字符串”隐式转换为“Microsoft.Office.Interop.Word.Range” 代码剪切: var rtf = tq.Descr_Rtf;//dr["tq_descr_rtf"] + ""; if (rtf != "") { try {

在ms word中 我正在尝试复制保存在数据库中的richtext字符串 但看起来我无法直接设置formattedText,因为会出现错误:

错误CS0029无法将类型“字符串”隐式转换为“Microsoft.Office.Interop.Word.Range”

代码剪切:

var rtf = tq.Descr_Rtf;//dr["tq_descr_rtf"] + "";
            if (rtf != "")
            {
                try { System.Windows.Forms.Clipboard.SetText(rtf, System.Windows.Forms.TextDataFormat.Rtf); }
                catch (Exception ex)
                { MessageBox.Show(ex.Message); }


                wd.SelectContentControlsByTag("Descr")[1].Range.FormattedText = rtf;
            }
            else
            {
                wd.SelectContentControlsByTag("Descr")[1].Range.FormattedText.Text = tq.Descr;// rtf;
            }

在OpenWord文档中,
FormattedText
属性仅在两个
范围之间工作

就Word而言,RTF不是“本机”格式。您不能使用对象模型将RTF编码写入Word,并生成Word格式—您得到的只是一个字符串(RTF编码)

Word的原生格式是Word Open XML,必须使用
InsertXML
方法插入(在OPC平面文件版本中)

将RTF引入Word并将其转换为Word格式的唯一方法是

  • 将RTF保存到文件并使用
    InsertFile
    方法或

  • 将RTF放在剪贴板上,然后将其粘贴到Word中。或

  • 您必须编写(或查找)一个会话库,将RTF转换为有效的Word Open XML(OPC平面文件格式)


  • 我的回答有用吗?由于您不熟悉堆栈溢出,因此,如果答案回答了您的问题,通常会单击答案旁边的复选标记,并向上投票任何有用的贡献。