为 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. 九度OJ 1351 数组中只出现一次的数字

    题目地址:http://ac.jobdu.com/problem.php?pid=1351 题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 输 ...

  2. Struts2文件上传方式与上传失败解决方式

    首先将几个对象弄出来第一个 上传页面第二个 上传action第三个 startut2配置文件 我的文字描述不是很好,但是终归是自己写出来的,后来我在网上看到一篇关于文件上传描述的非常清楚的文章, 链接 ...

  3. DataGridView几个基本属性

    DataGridView 经常用到,但是很多东西都不熟悉,以至于总去上网查,这次我整理一下,全部都记下来,再用就方便了. 1.禁止用户新建行,就是去掉最后那个行标题上带星号的那个行 dataGridV ...

  4. JS判断输入框值是否为空

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. (转载)SQL中导入图片

    SQL中导入图片 分类: 论坛精贴 2006-05-10 12:07 398人阅读 评论(0) 收藏 举报 sqlimage服务器insertlogingo 1.建立过程CREATE PROCEDUR ...

  6. Rsync+Inotify-tools实现数据实时同步

    inotify是一种强大的,细粒度的,异步文件系统时间监控机制,它可以替代crond实现与rsync的触发式文件同步,从而监控文件系统中添加,删除,修改,移动等细粒事件,从LINUX 2.6.13起, ...

  7. 在jsp中运用ajax实现同一界面不跳转处理事件

    目前,编写应用程序时有两种基本的选择: 桌面应用程序 Web应用程序 它们有什么区别呢?桌面应用程序一般很快(就在您的计算机上运行,不用等待互联网连接),具有漂亮的用户界面(通常和操作系统有关)和非凡 ...

  8. codeforces edu round3

    B. The Best Gift  传送门:http://codeforces.com/problemset/problem/609/B Emily's birthday is next week a ...

  9. 查看uCOS-II的CPU使用率

    代码模板: void main(void) { OSInit(); /* 安装uCOS-II的任务切换向量 */ /* 创建用户起始任务TaskStart */ OSStart(); } void T ...

  10. <七> jQuery 设置内容和属性

    设置内容 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 设置属性 jQuery attr( ...