zoukankan      html  css  js  c++  java
  • zz给 VSTO 插件、文档传送参数

    这个问题在中文、英文 MSDN 的 Office 开发论坛上都看到过(也正好都是我提供了答案),看来也算是一个“国际化需求”了。今天就记录一下和大家分享。

      故事是这样的:开发人员有一个 WinForm 应用程序,它从数据库里面读取出一条记录后,获得了一个记录 ID,然后需要打开 Word 或者 Excel,用已经准备好了的 VSTO 文档或者是插件,根据这个记录 ID 生成相应的 Office 文档内容。问题是,怎么把这个 ID 传给 Word 或者 Excel?

      有一个很简单的实现方法——直接在启动 Word / Excel 的命令行里面加参数!比如:

      <Excel.exe> /r "D:\ExcelWorkbook1.xlsx" /e /id:1234

      其中 <Excel.exe> 应该是 Excel.exe 的完整路径。 

      /r 后面跟 VSTO Excel 文档的完整路径。

      /e 告诉 Excel 不要打开一个空白新文档。

      /id:1234 就是自己定义的参数了,你可以在这里把你的ID号传入。当然参数名字也可以是其它的,并不是一定要“id”。

       第二步,在 VSTO Excel 文档里面,可以通过下面的代码枚举命令行参数:

      For Each a As String In Environment.GetCommandLineArgs
           MsgBox(a)
      Next

      上面的代码如果被执行,会把所有命令行参数都显示出来。 

      只要找到其中/id:开头的参数,把数字取出来就好了。

      对于 Word,也可以用类似的方法,只是 /r /e 之类的参数要换成对应的 Word 参数。

      这个方法用在 Word 2007 / Excel 2007 没有问题,但是我不能保证将来的版本是否也可以这样用。特别是如果你添加的自定义参数不巧被新版本用作标准参数名的话……所以参数名最好独特一点啦。

  • 相关阅读:
    JSP三大指令是什么?
    jsp和servlet的区别、共同点、各自应用的范围
    1.说一说Servlet的生命周期?
    .查询姓“李”的老师的个数;
    jquery 主要内容有两大部分:
    jQuery的优势:
    JDBC的PreparedStatement是什么?
    execute,executeQuery,executeUpdate的区别是什么?
    String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的
    数据维护不求人,一招搞定增删改
  • 原文地址:https://www.cnblogs.com/end/p/1520795.html
Copyright © 2011-2022 走看看