richTextBox实现带格式word文档的打开、保存、另存为

//用richTextBox打开带格式的word文档。

//先打开word文档,全选其中的内容并保存的剪切板中,最后在richTextBox中粘贴数据,并关闭文档

public void OpenWord(string fileName)

{

    Word.ApplicationClass app = new Word.ApplicationClass();

    Word.Document doc = null;

    object missing = System.Reflection.Missing.Value;

    object File = fileName;

    object readOnly = false;

    object isVisible = true;

    try

    {

        doc = app.Documents.Open(ref File, ref missing, ref readOnly,

         ref missing, ref missing, ref missing, ref missing, ref missing,

         ref missing, ref missing, ref missing, ref isVisible, ref missing,

         ref missing, ref missing, ref missing);



        doc.ActiveWindow.Selection.WholeStory();//全选word文档中的数据

        doc.ActiveWindow.Selection.Copy();//复制数据到剪切板

        richTextBox1.Paste();//richTextBox粘贴数据

        //richTextBox1.Text = doc.Content.Text;//显示无格式数据

    }

    finally

    {

        if (doc != null)

        {

            doc.Close(ref missing, ref missing, ref missing);

            doc = null;

        }



        if (app != null)

        {

            app.Quit(ref missing, ref missing, ref missing);

            app = null;

        }

    }

}



//保存richTextBox数据到已经存在的word文档中。

//先打开word文档,全选word文档中的数据,然后全选richTextBox中的数据并复制,粘贴到word文档中,最后保存word文档,并关闭文档

public void SaveWord(string fileName)

{

    Word.ApplicationClass app = new Word.ApplicationClass();

    Word.Document doc = null;

    object missing = System.Reflection.Missing.Value;

    object File = fileName;

    object readOnly = false;

    object isVisible = true;

    try

    {

        doc = app.Documents.Open(ref File, ref missing, ref readOnly,

         ref missing, ref missing, ref missing, ref missing, ref missing,

         ref missing, ref missing, ref missing, ref isVisible, ref missing,

         ref missing, ref missing, ref missing);



        doc.ActiveWindow.Selection.WholeStory();//全选

        richTextBox1.SelectAll();

        Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf);//复制RTF数据到剪贴板

        doc.ActiveWindow.Selection.Paste();

        //doc.Paragraphs.Last.Range.Text = richTextBox1.Text;//word文档赋值数据,不带格式

        doc.Save();

    }

    finally

    {

        if (doc != null)

        {

            doc.Close(ref missing, ref missing, ref missing);

            doc = null;

        }



        if (app != null)

        {

            app.Quit(ref missing, ref missing, ref missing);

            app = null;

        }

    }

}



//将richTextBox带格式的文本另存为word文档

//先创建一个word文档,全选word文档中的数据,然后全选richTextBox中的数据并复制,粘贴到word文档中,最后保存word文档,并关闭文档

public void SaveAsWord(string fileName)

{

    Word.ApplicationClass app = new Word.ApplicationClass();

    Word.Document doc = null;

    object missing = System.Reflection.Missing.Value;

    object File = fileName;

    try

    {

        doc = app.Documents.Add(ref missing, ref missing, ref missing, ref missing);



        doc.ActiveWindow.Selection.WholeStory();//全选

        richTextBox1.SelectAll();

        Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf);//复制RTF数据到剪贴板

        doc.ActiveWindow.Selection.Paste();



        doc.SaveAs(ref File, ref missing, ref missing,

            ref missing, ref missing, ref missing,

            ref missing, ref missing, ref missing,

            ref missing, ref missing, ref missing,

            ref missing, ref missing, ref missing,

            ref missing);

    }

    finally

    {

        if (doc != null)

        {

            doc.Close(ref missing, ref missing, ref missing);

            doc = null;

        }



        if (app != null)

        {

            app.Quit(ref missing, ref missing, ref missing);

            app = null;

        }

    }



}

猜你喜欢

转载自blog.csdn.net/dyxcome/article/details/82120534
今日推荐