`
luckyjaky
  • 浏览: 114425 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用C#玩转WORD

阅读更多
我们都知道,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操作ACCESS,MSPPT.OLB操作PPT,XL5CHS32.OLB操作EXCEL。载入不同的组件就可以完成对不同Office组件的操作。使用tlbimp,exe工具转化MSWORD.OLB文件后可以得到三个DLL文件,Office,dll,Visual BasicIDE.dll,Word.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 Library(Office 2003/2007需要使用12.0版的,如果你使用的是Office 2000或者更低的版本,只要载入10.0版的就可以了),确定后引入.也可以在“浏览”选项卡下找到我们上面提到的MSWORD.OLB文件,引入即可。引入后我们可以发现在解决方案中,引用目录下多了三个文件Microsoft.Office.Core,Microsoft.Office.Interop.Word,VSIDE。这说明引用文件成功,之后在编译程序的时候,在Debug目录下会生成两个DLL文件,Interop.Microsoft.Office.Core.dll,Interop.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可以有名字并在保存Document时Bookmark也被保存。

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

//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。
  • 大小: 16.5 KB
  • 大小: 33.3 KB
分享到:
评论

相关推荐

    c# HTML转word源码

    在你的压缩包文件"Html转Word"中,可能包含了实现这个功能的源代码,你可以通过研究这些代码进一步理解HTML转Word的实现细节。同时,为了优化转换效果,你可能需要对输入的HTML进行预处理,确保它符合Word文档的格式...

    C#中PDF文件转WORD文件

    对于PDF转Word,我们可以使用Aspose.Words组件。 2. **安装Aspose库** 在你的C#项目中,你可以通过NuGet包管理器安装Aspose.Words库。在Visual Studio中,右键点击解决方案资源管理器中的项目,选择“管理NuGet...

    C#实现word转图片

    综上所述,"C#实现word转图片"涉及到的知识点包括C#编程、Adobe Professional API(尽管不是直接使用)、Ghostscript的集成、进程调用、图像处理、文件I/O、异常处理、多线程编程、设计模式以及服务器部署和配置。...

    C#将WORD转换为PDF的Demo

    本示例"C#将WORD转换为PDF的Demo"是使用C#编程语言在ASP.NET环境中实现的一个具体应用,旨在帮助开发者了解如何将Microsoft Word文档转换为PDF格式。此程序依赖于服务器上安装的Office 2010,因为它利用了Microsoft ...

    C#中PDF文件转WORD文件--完整版)

    本文将深入探讨如何使用C#来实现这一功能,主要涉及的技术包括PDF阅读库、Word处理库以及文件操作。 首先,我们需要一个能够读取PDF文件的库。Adobe提供了Adobe PDF SDK,但其价格较高且不适合所有项目。一个常用的...

    C# HtmlToWord 将HTML文件转换成word文档

    NReco.PdfGenerator主要用于HTML转PDF,但也可以通过一些调整用于HTML转Word。而ClosedXML则专门处理Excel和Word文档,提供了更直接的API来进行Word文档的创建和编辑。 以下是一个基本的转换流程: 1. **读取HTML...

    C# html转换成word

    html解析为word,并保存为word文档

    winform c# pdf文件转换doc文件和 png 图片格式 PDF转word 和图片

    采用C#开发语言,借助第三方Aspose.Pdf.dll及Spire.Pdf.dll 对pdf文件进行处理,可以把pdf文件转换成doc 或者docx png等格式,通过代码大家可以进行自己重新开发,核心代码已经编写完成,下载后可以直接运行进行pdf...

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

    本实例展示了使用C#操作Word文档,实现文字写入功能的整个过程,包括使用Range属性、C#操作Word文档的步骤、使用Range对象的Collapse方法、使用lambda表达式简化代码和使用线程池提高性能等多个知识点。

    C#+使用word模板+批量打印例子

    在这个"C#+使用word模板+批量打印例子"中,我们将探讨如何利用C#来操作Microsoft Word模板并进行批量打印。这个示例可能涉及到一个小型的桌面应用程序,用于处理大量基于Word文档的工作流程。 首先,`App.config`...

    C#中PDF文件转WORD文件(完整版)

    - 第三方在线服务:如果不想自行开发,可以考虑使用PDF转Word的在线API,如Google Drive或Microsoft OneDrive的转换功能。 以上是关于在C#中将PDF文件转换为Word文件的基本知识,实际应用中需要根据具体需求进行...

    c#word转pdf

    将已经存在的word的文件,转换为pdf,之前用过Aspose.Words,但是保存为pdf时乱码,就找到了这个,按照文件里的说明填写,就可以成功,图片一定要看,不然报错,dll最好自己下载,上nuget就能找到,下载安装,就可以...

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

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

    c#html转word

    在C#中,可以使用Spire.Doc或OpenXML SDK设置Word文档的分页、纸张大小和方向。例如: ```csharp // 使用Spire.Doc Document document = new Document(); document.PageSetup.PaperSize = PaperSize.Letter; ...

    C# Word转PDF

    这个“C# Word转PDF”的主题是针对开发者,特别是初学者,提供了一个示例(demo)来演示如何实现这一功能。 首先,我们需要了解转换的核心概念。Word文档通常以.doc或.docx格式存储,而PDF(Portable Document ...

    C# WPF根据word模板生成word文档

    以上就是使用C# WPF根据Word模板生成Word文档的基本流程和关键知识点。通过这种方式,开发者可以构建自动化报告生成系统,自定义合同模板,或者在企业级应用中实现文档批量化生成。这种方法提高了工作效率,减少了...

    C#中PDF文件转WORD文件完整源码

    在压缩包中,"使用说明.txt"很可能是转换过程的详细步骤或者注意事项,而"C#中PDF文件转WORD文件"可能包含实际的代码示例。请查看这些文件以获取更多具体信息和代码实现细节。 转换过程中需要注意的点包括PDF的版权...

    c# word转tif

    在C# ASP.NET环境中,将Word(doc)文档转换为TIFF(TIF)图像文件是一个实用的需求,例如用于扫描文档、存储档案或进行OCR(光学字符识别)等。下面我们将详细探讨这个主题,讲解如何利用C#实现这一转换过程。 ...

Global site tag (gtag.js) - Google Analytics