为 Microsoft Word 创建自动化客户端

  1. 启动 Visual Studio .NET。
  2. 文件菜单上,单击新建,然后单击项目。从 Visual C# 项目类型中选择 Windows 应用程序。默认情况下会创建 Form1。
  3. 添加对 Microsoft Word 对象库的引用。为此,请按照下列步骤操作:
    1. 项目菜单上,单击添加引用
    2. 在 COM 选项卡上,找到 Microsoft Word 对象库,然后单击选择

      注意:Microsoft Office 2003 包含主 Interop 程序集 (PIA)。 Microsoft Office XP 不包含 PIA,但您可以下载 PIA。 有关 Office XP PIA 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

      328912 INFO:Microsoft Office XP PIA 可供下载
    3. 添加引用对话框中单击确定以接受您的选择。如果系统提示您为选定的库生成包装,请单击
  4. 视图菜单上,选择工具箱以显示工具箱,然后向 Form1 添加一个按钮。
  5. 双击 Button1。出现该窗体的代码窗口。
  6. 在代码窗口中,将以下代码
    private void button1_Click(object sender, System.EventArgs e)
    {
    }

    替换为:

    private void button1_Click(object sender, System.EventArgs e)
    {
    Word.Application oWord;
    Word._Document oDoc;
    object oMissing = Missing.Value;
    object oDocBuiltInProps;
    object oDocCustomProps; //Create an instance of Microsoft Word and make it visible.
    oWord = new Word.Application();
    oWord.Visible = true; //Create a new Document and get the BuiltInDocumentProperties collection.
    oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing,
    ref oMissing);
    oDocBuiltInProps = oDoc.BuiltInDocumentProperties;
    Type typeDocBuiltInProps = oDocBuiltInProps.GetType(); //Get the Author property and display it.
    string strIndex = "Author";
    string strValue;
    object oDocAuthorProp = typeDocBuiltInProps.InvokeMember("Item",
    BindingFlags.Default |
    BindingFlags.GetProperty,
    null,oDocBuiltInProps,
    new object[] {strIndex} );
    Type typeDocAuthorProp = oDocAuthorProp.GetType();
    strValue = typeDocAuthorProp.InvokeMember("Value",
    BindingFlags.Default |
    BindingFlags.GetProperty,
    null,oDocAuthorProp,
    new object[] {} ).ToString();
    MessageBox.Show( "The Author is: " + strValue,"Author" ); //Set the Subject property.
    strIndex = "Subject";
    strValue = "The Subject";
    typeDocAuthorProp.InvokeMember("Item",
    BindingFlags.Default |
    BindingFlags.SetProperty,
    null,oDocBuiltInProps,
    new object[] {strIndex,strValue} ); //Add a property/value pair to the CustomDocumentProperties collection.
    oDocCustomProps = oDoc.CustomDocumentProperties;
    Type typeDocCustomProps = oDocCustomProps.GetType(); strIndex = "Knowledge Base Article";
    strValue = "Q303296";
    object[] oArgs = {strIndex,false,
    MsoDocProperties.msoPropertyTypeString,
    strValue}; typeDocCustomProps.InvokeMember("Add",BindingFlags.Default |
    BindingFlags.InvokeMethod, null,
    oDocCustomProps, oArgs ); MessageBox.Show("Select \"Properties\" from the File menu "
    + "to view the changes.\nSelect the Summary tab to view "
    + "the Subject property and the Custom tab to view the Knowledge"
    + "Base Article property.", "Check File Properties",
    MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
  7. 滚动到代码窗口顶部,然后将以下行添加到 using 指令列表的末尾:
    using Microsoft.Office.Core;
    using Word = Microsoft.Office.Interop.Word;
    using System.Reflection;
  8. 按 F5 键运行该应用程序。

注意DocumentProperties 和 DocumentProperty 接口是晚期绑定接口。若要使用这些接口,必须像对待 IDispatch 接口那样对待它们。

C# 操作 Word 修改word的高级属性中的自定义属性的更多相关文章

  1. C# 操作 Word 修改word的高级属性中的自定义属性2

    word的类库使用的是word2007版本的类库,类库信息见下面图片,折腾了半天,终于找到入口,网上 很多说的添加或者修改word的高级属性中的自定义属性都是错误的,感觉都是在copy网上的代码,自己 ...

  2. jQuery操作标签--样式、文本、属性操作, 文档处理

    1.样式 2.文本 3.属性操作 全选,反选效果 4.文档处理 操作标签 一.样式操作 样式类: addClass(); // 添加指定的css类名 removeClass(); //移除指定的css ...

  3. 全面了解POI操作Microsoft Office(Word、Excel、PowerPoint)

    POI 与 Microsoft Office 1. POI 简介 POI 是 Apache 下的 Jakata 项目的一个子项目,主要用于提供 java 操作 Microsoft Office 办公套 ...

  4. 如何修改word的项目编号

    在操作word文档时,有时会遇到word文档中的项目编号不是自己需要的,并造成word项目编号的混乱,如何word中的两级项目编号不统一,为解决会word的项目编号混乱问题,小编将教大家如何修改wor ...

  5. C#学习笔记(33)——批量修改word标题

    说明(2017-12-22 11:20:44): 1. 因为数学脚本的主标题和副标题没有格式,目录导航里不显示,修改的时候不好定位,所以需要改成下图格式: 2. 问题的难点有两个,一个是word的操作 ...

  6. 教您如何在Word的mathtype加载项中修改章节号

    在MathType数学公式编辑器中,公式编号共有五部分内容:分别是章编号(Chapter Number).节编号(Section Number).公式编号(Equation Number).括号(En ...

  7. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  8. 利用python批量修改word文件名的方法示例

    利用python批量修改word文件名的方法示例 最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完 ...

  9. 怎么批量修改Word表格的宽度

    怎么批量修改Word表格的宽度 怎么批量修改Word表格的宽度呢.Word表格可根据窗口自动调整表格宽度,使得所有的表格宽度和页面宽度一样.当页面设置了新的页边距后,所有的表格都需要调整新的宽度.或者 ...

随机推荐

  1. Android_Json实例

    概要: 最近由于自己的兴趣,想在Android开发一个自己的App,需要使用服务器,所以交换数据是逃不掉了的,但是学生党没有固定的服务器,因此使用的新浪的SAE,在学习的前期下可以尝试一下,挺不错的一 ...

  2. .NET研发人员面试题(一)

    1.简述javascript中的“=.==.===”的区别? =赋值 ==比较是否一般相等   "3"==3 //会做类型的隐式转换,true ===比较是否严格相等 " ...

  3. 使用webstorm上传代码到github

    使用webstorm上传代码到github 字数681 阅读330 评论0 喜欢5 之前使用过webstorm上传代码到github,过了几个月竟然发现自己忘记了,好记性不如烂笔头啊,今天又重新用了一 ...

  4. 青瓷qici - H5小游戏 抽奖机 “one-arm bandit”

    写在前面 本文实现一个简单的抽奖效果,使用青瓷qici引擎,其中应用了Tween动画,粒子系统,遮罩,UI界面布局,项目设置,发布等功能呢. 目前开发采用1.0.7版本,后续如果界面有所变化请参考这个 ...

  5. iOS之多线程浅谈

    1)并发和并行的区别 在软件开发中不可避免的会遇到多线程的问题,在iOS客户端开发(或者.NET的winform或者wpf这样的cs程序)中就更不可避免的会用到多线程,在bs类型的web项目中要考虑一 ...

  6. MySQL大数据量快速分页实现

    一般刚开始学SQL语句的时候,会这样写 代码如下:  SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 代码如下: ...

  7. RasAPI函数实现PPPOE拨号

    unit uDial; interface uses Windows,Messages, SysUtils, Ras;// Classes; var //EntryName,UserName,Pass ...

  8. Linux下GPIO驱动(一) ----一个简单的LED驱动

    /******************************* * *杂项设备驱动:miscdevice *majior=10; * * *****************************/ ...

  9. CGAL 介绍

    CGAL组织 内核 数值健壮 基础库 扩展性 2.4 命名约定 Naming In order to make it easier to remember what kind of entity a ...

  10. ios更改UITabBarController背景以及选中背景图片的方法

    一.背景图片  1.5.0以上版本     UIImage *image = [UIImage imageNamed:@"system_tabbar_bg.png"];     [ ...