`
michaeltangbin
  • 浏览: 271803 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

C#操作word

    博客分类:
  • C#
阅读更多

运行环境:Windows XPVisual Studio.NET 2005Office 2007

 

我们都知道,Office是基于COM组件技术开发的,属于非托管程序,然而C#使用的都是托管程序,那么如何使用非托管的COM组件就是我们操作WORD的第一个问题。所幸的是,.NET FRAMEWORK提供了一种不同种类类库的转换工具tlbimp,exe,通过这个转换工具,我们可以把COM组件转化为.NET FRAMEWORK可以直接调用的DLL文件。

接下来就是转化工作了,Office组件都可以在C:Program FilesMicrosoft Office目录下找到,当然安装的Office版本不同,子目录是不一样的。笔者使用的是Office 2007,可以在C:Program FilesMicrosoft OfficeOffice12目录下找到MSWORD.OLB,这个是WORD组件的类库文件,还可以找到MSACC.OLB操作ACCESSMSPPT.OLB操作PPTXL5CHS32.OLB操作EXCEL。载入不同的组件就可以完成对不同Office组件的操作。使用tlbimp,exe工具转化MSWORD.OLB文件后可以得到三个DLL文件,Office,dllVisual BasicIDE.dllWord.dll。最后在编译文件的时候,记得将这三个DLL文件载入,命令如下:

csc /r:system.dll /r:system.windows.forms.dll /r:system.drawing.dll /r:office.dll /r:vbide.dll /r:word.dll word.cs

笔者使用Visual Studio.NET 2005编译环境,通过IDE提供的功能可以大大简化我们对组件转化的工作,并且在编译时也不需要输入那么繁杂的语句,非常方便了。下面介绍一下IDE载入Office组件的方式。

在菜单栏选择“项目”-“添加引用”,弹出的窗口中我们可以选择“COM”选项卡,找到Microsoft Office 12.0 Object LibraryOffice 2003/2007需要使用12.0版的,如果你使用的是Office 2000或者更低的版本,只要载入10.0版的就可以了),确定后引入.也可以在“浏览”选项卡下找到我们上面提到的MSWORD.OLB文件,引入即可。引入后我们可以发现在解决方案中,引用目录下多了三个文件Microsoft.Office.CoreMicrosoft.Office.Interop.WordVSIDE。这说明引用文件成功,之后在编译程序的时候,在Debug目录下会生成两个DLL文件,Interop.Microsoft.Office.Core.dllInterop.Microsoft.Office.Interop.Word.dll。完成组件的引入,下面就可以开始程序设计了。

先看一下Word对像模型

 

 

 

Application :用来表现WORD应用程序,包含其它所有对象。他的成员经常应用于整个WORD,你可以用它的属性和方法控制WORD环境。

Document Document对象是WORD编程的核心。当你打开一个已有的文档或创建一个新的文档时,就创建了一个新的Document对象, 新创建的Document将会被添加到Word Documents Collection

Selection Selection对象是描述当前选中的区域。若选择区域为空,则认为是当前光标处。

Rang :是Document的连续部分,根据起始字符和结束字符定义位置。

Bookmark:类似于Rang,但Bookmark可以有名字并在保存DocumentBookmark也被保存。

 

在编程中使用到的代码如下,注释比较详细,这里就不再具体的说明。

        //Word程序对象

        private Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();

        //Word文档对象

        private Microsoft.Office.Interop.Word._Document aDoc;

 

        private void openfile_Click(object sender, EventArgs e)

        {//打开Word文件

            if (openFileDialog.ShowDialog() == DialogResult.OK)

            {

                //定义打开文件的16个参数

                object fileName = openFileDialog.FileName; //文件名称

                object ConfirmConversions = false; //允许转换

                object ReadOnly = false; //只读方式打开

                object AddToRecentFiles = false; //添加到最近打开的文档

                object PasswordDocument = System.Type.Missing;

                object PasswordTemplate = System.Type.Missing;

                object Revert = System.Type.Missing;

                object WritePasswordDocument = System.Type.Missing;

                object WritePasswordTemplate = System.Type.Missing;

                object Format = System.Type.Missing; //格式

                object Encoding = System.Type.Missing; //编码

                object Visible = System.Type.Missing;

                object OpenAndRepair = System.Type.Missing;

                object DocumentDirection = System.Type.Missing;

                object NoEncodingDialog = System.Type.Missing;

                object XMLTransform = System.Type.Missing;

                WordApp.Visible = true;

                try

                {

                    //打开文档

                    aDoc = WordApp.Documents.Open(ref fileName, ref ConfirmConversions, ref ReadOnly, ref AddToRecentFiles,

                      ref PasswordDocument, ref PasswordTemplate, ref Revert, ref WritePasswordDocument, ref WritePasswordTemplate,

                      ref Format, ref Encoding, ref Visible, ref OpenAndRepair, ref DocumentDirection, ref NoEncodingDialog, ref XMLTransform);

                    //激活文档,使文档为当前处理

                    aDoc.Activate();

                }

                catch

                {

                    MessageBox.Show("出现错误!");

                }

            }

        }

 

        private void closefile_Click(object sender, EventArgs e)

        {//关闭Word文件

            object SaveChanges = false; //保存更改

            object OriginalFormat = System.Type.Missing;

            object RouteDocument = System.Type.Missing;

 

            //关闭文档

            aDoc.Close(ref SaveChanges, ref OriginalFormat, ref RouteDocument);

            //退出程序

            WordApp.Quit(ref SaveChanges, ref OriginalFormat, ref RouteDocument);

        }

 

通过文档类对象aDoc还可以完成文件的保存,另存为等等操作,详细的可以参阅MSDN

 

 

 

 

 

 

  • 大小: 33.3 KB
分享到:
评论

相关推荐

    C#操作Word——C#向Word文档中写入文字

    C#操作Word文档,实现文字写入 本实例主要讲述了使用C#操作Word文档,实现文字写入功能。通过使用Word文档中的Range属性,能够轻松地向Word文档中添加文本内容。本实例中,首先创建了一个Windows窗体应用程序,然后...

    C#操作word文档(多种方法)

    以上就是C#操作Word文档的一些核心知识点和常见操作,通过这些方法可以实现对Word文档的读取、编辑和创建。在实际开发中,根据具体需求,还可以结合其他高级特性,如模板应用、邮件合并、宏执行等。

    C#操作word模板

    ### C#操作Word书签模板知识点详解 #### 一、制作Word书签模板 1. **新建文档**:首先创建一个新的Word文档,并设置好需要的内容。对于需要循环展示的部分(如列表或表格),建议将其放入表格中进行管理,因为表格...

    c#操作word进行批量查找和替换

    综上所述,通过C#操作Word进行批量查找和替换是一个涉及文件操作、COM互操作以及Word API运用的过程。正确理解和运用这些知识点,可以创建一个高效且灵活的文档处理工具。在实际应用中,还可以根据需要扩展功能,如...

    C#操作word,如何进行查找和替换

    ### C#操作Word文档进行查找和替换的知识点详解 #### 一、引入必要的命名空间与组件 为了在C#中操作Word文档,首先需要引入必要的命名空间和引用Microsoft Word对象库。具体步骤如下: 1. **引入命名空间**: ``...

    C# 操作 Word 代码大全

    C#操作Word.doc C#操作Word表格.doc C#操作WORD辅助类.txt c#操作word模板插入文字、图片及表格.doc C#操作Word在Word文档中插入图片.docx C#用word模板做文档.doc 收集的C#操作Word的各种代码。直接复制粘贴到程序...

    C#操作word里面的书签

    以上就是使用C#操作Word中的书签并插入表格的基本流程和关键代码。这个功能在自动化报告生成、文档模板填充等方面非常实用,可以极大地提高工作效率。在实际开发中,还需要考虑错误处理、兼容性问题以及性能优化等...

    C#操作Word文档(根据模板生成文档、替换内容、插入表格等)

    以上就是使用C#操作Word文档的基本步骤,包括根据模板生成文档、替换内容和插入表格。通过深入理解和实践,开发者可以创建出高效、灵活的文档自动化解决方案。在实际项目中,务必注意异常处理和资源管理,以确保程序...

    C#操作word文档 C#实现Word中表格信息读取

    根据提供的文件信息,我们可以归纳出两个主要的知识点:一是如何使用C#操作Word文档并插入图片;二是如何利用C#批量替换Word文档中的书签文本。下面将对这两个知识点进行详细解析。 ### 一、使用C#操作Word文档并...

    C#操作Word文件

    ### C#操作Word文件知识点详解 #### 一、概述 在C#中操作Word文件是一项常见但非常实用的技术。这不仅适用于自动化办公场景,还能帮助开发者实现数据导出、报告生成等多种需求。本文将详细介绍如何使用C#进行Word...

    c#操作word功能类

    c#操作word详细类。实用c#操作word的一个通用类,功能全面。

    C#操作word,签入书签,图表,表格

    本篇文章将深入探讨如何利用C#操作Word文档,包括插入书签、创建和编辑图表以及操作表格。这些功能对于自动化报告生成、文档处理和数据整合等场景非常有用。 首先,让我们了解一下如何在C#中操作Word文档。这通常...

    c# 操作word

    c# 操作word,包含word文档的打开,修改,删除,添加文本等

    C# 操作Word

    非常好用的一个C#操作word的类库。能在word文档中任意位子写文字以及段落和表格(带线和不带线以及虚线)、图片、页眉页脚。word能操作的,这个类库基本都可以完成。下载直接使用。

    C# 操作word

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和.NET框架相关项目时。本主题聚焦于如何使用C#来操作...通过学习和理解这些代码,你将能够熟练地运用C#操作Word,实现文档自动化修改的需求。

    c#操作word的编辑控件.rarc#操作word的编辑控件.rar

    在IT领域,C#是一种广泛使用的编程语言,尤其...综上所述,C#操作Word的编辑控件涉及多个层面,从基本的文档创建和文本编辑到更复杂的格式设置和自动化流程。选择合适的方法取决于具体需求,如性能、兼容性和开发效率。

Global site tag (gtag.js) - Google Analytics