C#打开Word

资讯 |  安全 |  论坛 |  下载 |  读书 |  程序开发 |  数据库 |  系统 |  网络 |  电子书 |  站长学院 |  源码 |  QQ |  专栏 |  考试 |  手册 |  软件开发| web前端| Web开发| 移动开发| 综合编程|   首页 > 程序开发 > 软件开发 > C# > 正文 C#打开Word 2013-04-02 15:32:54     我来说两句       作者:caiye917015406收藏    我要投稿 Word中几个重要的对象介绍:

       Application对象表示 Microsoft Office Word 2003应用程序本身。每次编写代码时,都应从Application对象开始。可以从Application对象访问Word公开的所有其他对象和集合,以及Application对象自身的属性和方法。

       在Word中处理某个特定文档时,这个文档就称为活动文档,并且可通过Application对象的ActiveDocument属性引用。所有的Word Document对象同时也是Application对象的Documents集合的成员,该集合由所有打开的文档组成。使用Document对象时,允许使用单个文档,而Documents集合则允许使用所有打开的文档。由于在Application和Document级别都可以进行文档操作,所以Application和Document类共享许多成员。

       Selection对象表示 Microsoft Office Word 2003 文档中当前选定的区域。在Word用户界面中执行某项操作(例如,对文本进行加粗)时,应首先选择或突出显示目标文本,然后应用格式设置。可在代码中以相同的方式使用Selection对象:先定义Selection,然后执行操作。可以使用Selection对象选择、操作和打印文档中的文本以及设置文本的格式。Selection对象始终存在于文档中。如果未选中任何对象,它表示插入点。因此,在尝试使用Selection对象执行任何操作之前,知道该对象包含哪些内容是很重要的。

       Range对象与Selection对象共享着很多成员。二者之间的主要区别在于:Selection对象始终在用户界面中返回对所选内容的引用,而Range对象允许在用户界面中不显示范围的情况下处理文本。Range对象的主要优势有:
       Range 对象通常只需要较少行数的代码就能完成给定任务。
       Range 对象不会引起与 Word 必须移动或改变活动文档中的突出显示相关的系统开销。
       Range 对象比 Selection 对象的功能更强。

       Bookmark对象与Range和Selection对象类似,因为它表示文档中的连续区域,既有起始位置也有结束位置。书签用于在文档中标记一个位置,或者用作文档中的文本容器。Bookmark对象可以小到只有一个插入点,也可以大到整篇文档。您还可以在文档中定义多个书签。可以将Bookmark看作是保存在文档中的一个指定位置。

打开Word:
            Word.Application wapp = new Microsoft.Office.Interop.Word.Application();
            wapp.Visible = true;
            wapp = null;

打开一个现有的Word文档:
            Word.Application wapp = new Microsoft.Office.Interop.Word.Application();
            wapp.Visible = true;
            object filename = "E:\\Task.doc";
            object isread = false;
            object isvisible = true;
            object miss = System.Reflection.Missing.Value;

            wapp.Documents.Open(ref filename, ref miss, ref isread, ref miss, ref miss, ref miss, ref miss, ref miss,

                                              ref miss, ref miss, ref miss, ref isvisible, ref miss, ref miss, ref miss, ref miss);

            wapp = null;

打开一个新文档:
            Word.Application wapp = new Microsoft.Office.Interop.Word.Application();
            Word.Document adoc = new Microsoft.Office.Interop.Word.Document();
            wapp.Visible = true;
            object miss = System.Reflection.Missing.Value;
            adoc = wapp.Documents.Add(ref miss, ref miss, ref miss, ref miss);

            wapp = null;

第二篇是具体的实例

[csharp]
OpenFileDialog opd = new OpenFileDialog();
           opd.InitialDirectory = "G:\\项目\\福沃德\\Project\\文本相似度检测\\data\\";;
           opd.Filter =   "Word文档(*.doc)|*.doc|文本文档(*.txt)|  *.txt|RTF文档(*.rtf)|*.rtf|所有文档(*.*)|*.*";
           opd.FilterIndex = 1;
           if (opd.ShowDialog() ==   DialogResult.OK && opd.FileName.Length > 0)
           {
               //建立Word类的实例,缺点:不能正确读取表格,图片等等的显示
               //Word.ApplicationClass app = new Word.ApplicationClass();
               Word.Application app = new Microsoft.Office.Interop.Word.Application();
               Word.Document doc = null;
               object missing = System.Reflection.Missing.Value;
               object FileName = opd.FileName;
               object readOnly = false;
               object isVisible = true;
               object index = 0;
               try {
                   doc = app.Documents.Open(  ref FileName, 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();
                   doc.ActiveWindow.Selection.Copy();  //从剪切板获取数据
                   IDataObject data=Clipboard.GetDataObject();
                   this.richTextBox1.Text=  data.GetData(DataFormats.Text).ToString();
                  }
               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;
                    }
               }
           }  //end if 

 OpenFileDialog opd = new OpenFileDialog();
            opd.InitialDirectory = "G:\\项目\\福沃德\\Project\\文本相似度检测\\data\\";;
            opd.Filter =   "Word文档(*.doc)|*.doc|文本文档(*.txt)|  *.txt|RTF文档(*.rtf)|*.rtf|所有文档(*.*)|*.*";
            opd.FilterIndex = 1;
            if (opd.ShowDialog() ==   DialogResult.OK && opd.FileName.Length > 0)
            {
                //建立Word类的实例,缺点:不能正确读取表格,图片等等的显示
                //Word.ApplicationClass app = new Word.ApplicationClass();
                Word.Application app = new Microsoft.Office.Interop.Word.Application();
                Word.Document doc = null;
                object missing = System.Reflection.Missing.Value;
                object FileName = opd.FileName;
                object readOnly = false;
                object isVisible = true;
                object index = 0;
                try {
                    doc = app.Documents.Open(  ref FileName, 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();
                    doc.ActiveWindow.Selection.Copy();  //从剪切板获取数据
                    IDataObject data=Clipboard.GetDataObject();
                    this.richTextBox1.Text=  data.GetData(DataFormats.Text).ToString();
                   }
                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;
                     }
                }
            }  //end if

要注意引用
using Word = Microsoft.Office.Interop.Word;

三 相关的函数拓展,本人未亲测

创建新Word:

            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
                ref oMissing, ref oMissing);

打开文档:

            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            object fileName = @"E:\CCCXCXX\TestDoc.doc";
            oDoc = oWord.Documents.Open(ref fileName,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

导入模板

            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            object fileName = @"E:\XXXCCX\Test.doc";
            oDoc = oWord.Documents.Add(ref fileName, ref oMissing,
                            ref oMissing, ref oMissing);

.添加新表

            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
                ref oMissing, ref oMissing);

            object start = 0;
            object end = 0;
            Word.Range tableLocation = oDoc.Range(ref start, ref end);
            oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

.表插入行

            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
                ref oMissing, ref oMissing);

            object start = 0;
            object end = 0;
            Word.Range tableLocation = oDoc.Range(ref start, ref end);
            oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

            Word.Table newTable = oDoc.Tables[1];
            object beforeRow = newTable.Rows[1];
            newTable.Rows.Add(ref beforeRow);

.单元格合并

            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
                ref oMissing, ref oMissing);

            object start = 0;
            object end = 0;
            Word.Range tableLocation = oDoc.Range(ref start, ref end);
            oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

            Word.Table newTable = oDoc.Tables[1];
            object beforeRow = newTable.Rows[1];
            newTable.Rows.Add(ref beforeRow);

            Word.Cell cell = newTable.Cell(1, 1);
            cell.Merge(newTable.Cell(1, 2));

.单元格分离

            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing,
                ref oMissing, ref oMissing);

            object start = 0;
            object end = 0;
            Word.Range tableLocation = oDoc.Range(ref start, ref end);
            oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

            Word.Table newTable = oDoc.Tables[1];
            object beforeRow = newTable.Rows[1];
            newTable.Rows.Add(ref beforeRow);

            Word.Cell cell = newTable.Cell(1, 1);
            cell.Merge(newTable.Cell(1, 2));

            object Rownum = 2;
            object Columnnum = 2;
            cell.Split(ref Rownum, ref Columnnum);

通过段落控制插入

            object oMissing = System.Reflection.Missing.Value;
            object oEndOfDoc = ""; /**//* \endofdoc is a predefined bookmark */

            //Start Word and create a new document.
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
                ref oMissing, ref oMissing);

            //Insert a paragraph at the beginning of the document.
            Word.Paragraph oPara1;
            oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
            oPara1.Range.Text = "Heading 1";
            oPara1.Range.Font.Bold = 1;
            oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
            oPara1.Range.InsertParagraphAfter();

C#打开Word

时间: 2024-10-09 14:59:10

C#打开Word的相关文章

页面中打开Word,在线浏览

/// <summary> /// 为了通用,放到一个类文件中,别的也没直接调用 /// </summary> /// <param name="fileName">得到上传的文件名字以及后缀名字</param> /// <param name="inFilePath">要打开文件的路径</param> /// <param name="ShowPath">生产静

WinXP系统打开Word文档会弹出“打开方式”界面怎么办

WinXP系统打开Word文档会弹出"打开方式"界面怎么办 Word是微软公司开发的一个文字处理器应用程序,我们在日常办公中经常会使用到它.不过,最近有些XP系统用户反馈,电脑已经安装过Office,不过在打开Word文档时,总会弹出打"打开方式"界面,并提示选择你想用来打开此文件的程序,这该如何解决呢? 原因分析: 如果XP系统xitongcheng.com/xp/中安装过Office软件,而现在出现打开方式的界面,很有可能是文件关联出错了,或是你安装过别的Off

OFFICE2007软件打开word时出现SETUP ERROR的解决方法

今天打开word时出现以下错误窗口: 在度娘上找了一下解决方案,原来每次打开word时都会启动一些无用的东西,找到这些东西的路径D:\Program Files\Common Files\microsoft shared\OFFICE12,删除或剪贴(相当于备份)Office Setup Controller,重新打开word,再也不出现以上烦人的窗口了!

用MFC实现打开word文件

在用MFC打开word文件时,需要导入.olb文件. 通过VC++6.0 工具栏上的View / ClassWizard->Add Class选择From a Type Library-定位需要的库文件导入. 本例使用的路径为: C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB. 如图(1).图(2)所示: 图(1)导入msword.olb文件 图(2)按"Ctlr+鼠标左键"导入相应的类,比如_Application.D

WebBrowser打开Word文档的一些注意事项

WebBrowser打开Word文档的一些注意事项 分类: C#word2010-03-31 21:26 5640人阅读 评论(3) 收藏 举报 webbrowser文档browser工具objectsql server 2009年09月27日 星期日 17:37 忙乎了多日,终于将WebBrowser中Word工具栏中搞定 在题库管理系统中,需要将试题显示出来,并进行编辑.于是,每道题都存储为一个Word文件,并保存在SQL Server中,在浏览试题库时,用WebBrowser控件显示试题是

office组件损坏、打开Word出现感叹号

最近由于要用access,但是新装的机子上只有精装三合一版本的office,所以就在网上下载了个Access2007,安装后发现其他office办公软件打不开,并显示提示窗口”操作系统当前的配置不能运行此应用程序“ 打开Word出现感叹号 解决办法1:删文件解决办法2:删文件解决办法3:下载缺失的文件解决办法4:彻底卸载之后重新安装office(需要安装包的请联系1036644549)或wps 原文地址:https://www.cnblogs.com/lsxs-wy/p/9510568.html

Java实现在线打开word文档并强制留痕/留下痕迹

前言:在OA系统中,时不时的都会伴随着文档流转过程. 比如有的系统中会有领导审批的流程,那么在A领导审批完成后,他的审批痕迹能不能强制保留下来,以供下一步处理文档的专员清晰地参考呢? 我们知道,在本地office打开的文档中,如果点击 审阅---修订,就会将编辑的记录跟踪下来留下痕迹. 我们在线办公的系统中能不能直接将这一步由我们系统来做,避免出现用户操作不一致最终没留下痕迹的现象呢? 这些需求在分析后看似很复杂,甚至想要实现时摸不着头脑. 本篇文章直接介绍一个中间件技术-----pageoff

打开word时,出现“向程序发送命令时出现问题”的解决方法

本人用的是Windows 7的系统,这几天开word的时候,出现无法打开的问题,最后的提示框是"向程序发送命令时出现问题".上网查看之后,发现是模板文件Normal.dot出错,在关闭word时,在word中的插件都要往Normal.dot中写东西,如果产生冲突,Normal.dot就会出错,导致下一次启动word时,只能以安全模式启动. 下面是解决方法: 关闭所有打开的Word文档,将这条命令:%appdata%\microsoft\templates 复制到 开始 → 运行 的命令

原来有这样几种方式打开Word中的公式编辑器

由于MathType简单易学,并且编辑出来的公式符号国际出版要求,因此越来越多的人在发表期刊论文时用MathType来写公式.常见的就是在Word中调用MathType,但是一些用户们却不知道该怎么打开它.下面就来介绍在Word中打开MathType的几种方式. MathType是一款专业的数学公式编辑器,它所包含的很多符号与模板能够满足用户的平常工作学习之用.采用下面的打开方式的前提都是已经正确安装MathType软件,软件下载地址如下: MathType6.9Win:http://wm.ma