青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

統計

  • 隨筆 - 50
  • 文章 - 42
  • 評論 - 147
  • 引用 - 0

留言簿(6)

隨筆分類

文章分類

Link

搜索

  •  

積分與排名

  • 積分 - 166924
  • 排名 - 159

最新評論

閱讀排行榜

評論排行榜

關于在程序中調用office應用中的VBA模塊
由于工作關系需要操作ACCESS數據庫,發現有一個前人的VBA模塊,是用來將數據綜合生成報表的,要是可以直接調用就方便多了,以下是我個人摸索出的方法
需要說明的是程序是用C#寫的,C++程序員使用的話需要打開CLI來調用(一些C++粉絲看到這句話可能又要拍磚了,呵呵,還是那句話,程序語言都只是工具而已,關鍵是要合理使用,達到目的)

背景知識:
Primary Interop Assemblies--PIA

當用.NET調用已有的COM組件的時候,一般需要使用tlbimp導入COM組件的TypeLibrary信息,生成對應的Interop Assembly。所謂PIA (Primary Interop Assembly),則是“官方”發布的對于某個COM組件的.NET DLL。比如微軟公司發布了Office 2003COM組件,可以用于操作COM,同時,微軟也發布了Office 2003所對應的PIA,用于.NETPIA和普通的Interop(又稱為AIA, Alternative Interop Assembly)的不同之處在于:

1.     PIA是官方發布并經過Sign,可以在不同程序中共享。而AIA如果被不同的公司Sign過,則一個公司SignAIA DLL所創建的對象和另外一個公司SignAIA DLL是不兼容的(不同的Key代表不同的Identity),這也是使用PIA的主要原因

2.     PIA可能經過某種改動使其比一般Tlbimp生成的Interop DLL要容易使用一些,比如提供一些封裝函數。修改方法通常有兩種:

a.     可以從Tlbimp生成的DLL反匯編修改再生成新的DLL

b.     可以自己用C#來編寫這個DLL(其實TlbimpTlbexp也是C#寫的)

3.     Tlbimp生成PIA的時候需要指定/primary開關并聲明對應的key,如果不使用tlbimp生成PIA,則需要將對應的DLL加上PrimaryInteropAttributeGuidAttribute,這也正是Tlbimp所作的。

4.     RegAsm注冊PIA的時候,RegAsm會在COM組件的TypeLibrary注冊項中加入注冊信息表明該PIA對應這個COM組件

5.     當用Visual StudioAdd Reference功能的時候,VS會自動去查找是否有符合條件的PIA(通過上面所說的注冊信息),如果存在,則直接使用這個DLL

以上是官方解釋得PIA,說白了就是微軟提供的用于使用其產品特性的一些公共數據定義和方接口,這些特性中就包括VBA模塊,當然還有其他的特性,對于ACCESS有數據查詢,排序,等等,這里講的僅僅是應用其中VBA模塊特性的方法。
首先需要導入Microsoft.Office.Interop.Access程序集
主程序代碼如下:

 1using Access=System.Office.Interop.Access
 2
 3///Create access operating object
 4Access.ApplicationClass oAccess=new Access.ApplicationClass();
 5///Create parameter object array 
 6object paraObjects=new object[2];
 7paraObjects[0]="modeul name";//modeul name
 8paraObjects[1]="parameter1";
 9oAccess.OpenCurrentDatabase(mdbfilePath,false,null);
10object objRtn;
11///use reflect mechanism to execute VBA moduel named in paraObjects[0]
12objRtn==oAccess.GetType().InvokeMember(
13"Run",///member function of ApplicationClass object
14System.Reflection.BindingFlags.Default|System.Reflection.BindingFlags.InvokeMethod.
15null,
16oAccess,
17paraObjects
18);
19oAccess.CloseCurrentDatabase();
20
程序中主要用到類為ApplicationClass ,成員方法run就是用來運行VBA模塊的,該程序共有31個參數,第一個參數是用來指定模塊函數名稱,其余30個參數則是用來傳遞所要調用的模塊的參數,而此處使用反射機制只是想放程序看起來decent一些,不必寫出三十一個參數來,其余看注釋應該就了解了
當然這只是PIA一種應用,實際上任何Office的功能都可以通過PIA直接調用實現,歡迎大家交流討論

posted on 2009-02-10 14:01 pear_li 閱讀(2107) 評論(0)  編輯 收藏 引用 所屬分類: C#/.net

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美日韩一区二区三区在线| 欧美日本韩国一区| 国产精品一区二区男女羞羞无遮挡 | 久久精品成人一区二区三区蜜臀| 亚洲神马久久| 国内久久婷婷综合| 免费在线一区二区| 欧美精品国产一区二区| 一本大道久久a久久精二百| 亚洲国产日韩一区| 麻豆精品在线观看| av成人天堂| 亚洲欧美日韩第一区| 国产在线不卡| 亚洲人线精品午夜| 国产精品自拍网站| 久久久久久久波多野高潮日日| 久久久精品视频成人| 一本一本久久a久久精品牛牛影视| 一本大道久久精品懂色aⅴ| 国产三级精品在线不卡| 免费国产自线拍一欧美视频| 欧美大尺度在线观看| 亚洲网站啪啪| 久久人人爽人人| 一本一本久久a久久精品综合妖精| 亚洲视频专区在线| 亚洲国产精品v| 一区二区三区精密机械公司| 国模叶桐国产精品一区| 亚洲精品一区二区三区四区高清| 国产精品一香蕉国产线看观看 | 欧美18av| 国产精品一区二区久激情瑜伽| 亚洲成人资源| 亚洲人精品午夜在线观看| 国产精品入口夜色视频大尺度| 亚洲成色www8888| 国产日韩综合| 亚洲无吗在线| 亚洲免费高清| 麻豆久久婷婷| 久久精品亚洲国产奇米99| 欧美日韩小视频| 亚洲国产欧美不卡在线观看| 国产一区二区三区成人欧美日韩在线观看| 欧美激情一区二区三区四区| 国产综合av| 亚洲欧美国产精品va在线观看 | 国产精品婷婷午夜在线观看| 亚洲深夜福利网站| 欧美在线观看视频一区二区三区| 亚洲裸体视频| 久久综合图片| 蜜桃av噜噜一区| 国产专区一区| 亚洲欧美一区在线| 午夜久久资源| 国产精品第三页| 国产精品99久久久久久久久久久久 | 国产精品永久| 亚洲午夜羞羞片| 亚洲一区中文字幕在线观看| 欧美伦理在线观看| 亚洲破处大片| 日韩视频在线观看| 欧美韩日精品| 日韩写真视频在线观看| 一区二区三区国产| 欧美日韩精品一二三区| 亚洲理伦在线| 亚洲欧美另类久久久精品2019| 欧美日韩18| 亚洲深夜福利网站| 久久久天天操| 亚洲高清影视| 欧美日本久久| 亚洲无线视频| 久久久一区二区三区| 伊人久久婷婷色综合98网| 美女视频黄 久久| 亚洲欧洲一区二区三区久久| 亚洲视频精品| 国产精品视频yy9099| 欧美一区二区三区视频在线| 欧美www视频| 一本一本久久a久久精品综合妖精| 欧美激情精品久久久久久大尺度| 亚洲九九精品| 午夜精品在线视频| 影音先锋久久| 欧美激情a∨在线视频播放| 艳女tv在线观看国产一区| 欧美与欧洲交xxxx免费观看| 在线看无码的免费网站| 欧美韩国在线| 欧美一区二区女人| 亚洲国产精品久久久久秋霞影院| 亚洲视频一区在线观看| 狠狠久久亚洲欧美专区| 欧美gay视频| 午夜精品福利一区二区蜜股av| 久久综合久久综合这里只有精品 | 国产精品yjizz| 久久国产精品久久精品国产| 最新国产成人在线观看| 欧美一区高清| 国产精品99久久99久久久二8| 国产欧美婷婷中文| 欧美激情综合网| 久久久999| 亚洲午夜精品17c| 亚洲电影免费观看高清| 久久国产精品99久久久久久老狼| 亚洲精品一品区二品区三品区| 国产精品自拍视频| 欧美日韩亚洲三区| 免费亚洲网站| 亚洲国产精品黑人久久久| 国产精品高潮呻吟久久| 蜜臀99久久精品久久久久久软件| 亚洲一级网站| av不卡在线观看| 亚洲激情一区| 美日韩在线观看| 久久精品国产91精品亚洲| 宅男噜噜噜66国产日韩在线观看| 亚洲第一色在线| 国产在线精品自拍| 国产欧美精品| 国产精品久久久久久一区二区三区| 欧美va亚洲va香蕉在线| 欧美自拍丝袜亚洲| 先锋影院在线亚洲| 亚洲综合电影| 亚洲在线日韩| 亚洲午夜久久久久久久久电影院| 日韩一级精品视频在线观看| 亚洲国产欧美一区二区三区久久 | 欧美二区乱c少妇| 久久综合精品国产一区二区三区| 久久精品国产第一区二区三区最新章节 | 小嫩嫩精品导航| 午夜视频精品| 欧美一区二区在线看| 亚洲欧美综合精品久久成人| 亚洲综合色噜噜狠狠| 亚洲免费在线电影| 新狼窝色av性久久久久久| 亚洲欧美国产毛片在线| 午夜精品在线| 久久国产日韩| 美女图片一区二区| 欧美精品在线视频| 国产精品99一区二区| 国产精品久久中文| 国产亚洲欧美一区在线观看| 国产性天天综合网| 亚洲第一中文字幕在线观看| 亚洲国产岛国毛片在线| 亚洲伦理在线免费看| 亚洲婷婷国产精品电影人久久| 亚洲欧美日韩精品| 久久精品一本久久99精品| 麻豆国产精品777777在线| 欧美电影在线免费观看网站| 亚洲国产日韩一级| 亚洲一区一卡| 久久人人97超碰精品888| 欧美精品偷拍| 国产精品专区h在线观看| 国产在线精品一区二区夜色| 亚洲日本激情| 亚洲欧美文学| 欧美高清在线播放| 亚洲午夜精品久久| 久久三级福利| 国产精品xvideos88| 在线观看亚洲a| 亚洲综合三区| 欧美韩日一区二区三区| 一区二区三区欧美激情| 久久成人精品视频| 欧美天天影院| 亚洲国产日韩在线| 欧美诱惑福利视频| 日韩特黄影片| 免费成人毛片| 国产欧美精品国产国产专区| 香蕉亚洲视频| 欧美一区日韩一区| 欧美性猛交99久久久久99按摩| 黄色成人av网站| 新片速递亚洲合集欧美合集| 欧美成人免费网站| 欧美一区二区成人6969| 国产精品家教| 亚洲视频一区二区在线观看| 欧美激情区在线播放| 久久精品国产成人|