C#窗体中利用richtextbox控件,打开指定word文件,并进行编辑保存等操作,出现Office或者是Interop未定义的解决方案

来源:互联网 发布:算法分析与设计基础pdf 编辑:程序博客网 时间:2024/06/06 01:04



当我们遇到Office或者是Interop未定义的错误时,我们需要通过添加引用来解决;我的开发工具是VS2015,其他的版本操作大体相同;

首先,我们在使用VS开发工具建好窗体后,在菜单栏的项目上点击,选择添加引用------在COM中勾选Microsoft  Office 12.0 object library 及Microsoft  Office  List 12.0 ,这样就解决了Microsoft  Office 12.0 object library ;如图2所示;

其次, 先向下拉动,找到Microsoft  Word 12.0 object library 复选框,勾选即可解决Interop未定义的错误。如图3;

最后,就可以顺利的打开任何位置的word文件。


                                                            图2


                                                            图3

打开文件代码: private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                switch (Path.GetExtension(openFileDialog1.FileName))
                {
                    case ".rtf":
                        richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.RichText);
                        break;
                    case ".doc":
                    case ".docx":
                        //File.Copy(DocTOrtf(ofd打开.FileName), DocTOrtf(ofd打开.FileName));
                        richTextBox1.LoadFile(DocTOrtf(openFileDialog1.FileName), RichTextBoxStreamType.RichText);
                        break;
                }
            }


        }
        private string DocTOrtf(string doc)
        {
            //创建一个word的实例
            Word.Application newApp = new Word.Application();


            // 指定源文件和目标文件
            object Source = doc;


            object Target = Path.GetDirectoryName(doc) + "\\" + Path.GetFileNameWithoutExtension(doc) + ".rtf";
            File.Create(Target.ToString()).Dispose();
            object Unknown = Type.Missing;


            // 打开要转换的Word文件
            newApp.Documents.Open(ref Source, ref Unknown,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown);


            // 指定文档的类型
            object format = Word.WdSaveFormat.wdFormatRTF;


            //改变文档类型
            newApp.ActiveDocument.SaveAs(ref Target, ref format,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown, ref Unknown,
            ref Unknown, ref Unknown);


            //关闭word实例
            newApp.ActiveDocument.Close(ref Unknown, ref Unknown, ref Unknown);
            newApp.Quit(ref Unknown, ref Unknown, ref Unknown);


            return Target.ToString();
        }

保存代码:

 private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
        }

另存为代码:

 if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
            }

1 0
原创粉丝点击