<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 303  文章 - 883  trackbacks - 0
    <2008年11月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    歡迎光臨! 
    閑聊 QQ:1074961813

    隨筆分類(357)

    我管理的群

    公共blog

    • n維空間
    • Email : java3d@126.com 群 : 12999758

    參與管理的論壇

    好友的blog

    我的其他blog

    朋友的網站

    搜索

    •  

    最新評論

    大家好!我是小尋

                 如果你想寫一個JAVA代碼,其中需要調用JACOB提供的功能,而你還是新手,也許篇文章會大大降低你的花費時間。

                 我將一個關于JACOB的代碼分成下面幾個步驟:

                1) ActiveXComponent ax = new ActiveXComponent("a1");//構建ActiveX組件實例

               其中的a1的值和你需要調用的ActiveX控件有關

    MS控件名

    a1的值

    InternetExplorer

    InternetExplorer.Application

    Excel

    Excel.Application

    Word

    Word.Application

    Powerpoint

    Powerpoint.Application

    vb/java Script

    ScriptControl

    windows media Player

    WMPlayer.OCX

    Outlook

    Outlook.Application

    Visio

    Visio.Application

    DAO

    DAO.PrivateDBEngine.35

    MultiFace

    MultiFace.Face


                     2) Dispatch ds = ax.getObject(). toDispatch();//獲取Dispatch對象,我們可以把每個Dispatch對象看成是對Activex控件的一個操作,這一步是獲得該ActiveX控件的控制權。
                     (注:淺析JACOB 中提到過Variant類,這里的ax.getObject()便是獲得該對象,我們將其轉化為任何對象(類型))
             
                     3) Dispatch ds1 = Dispatch.get(ds, "a2").toDispatch(); //獲取該ActiveX對象數據結構中的a2屬性
       
                     4) Dispatch d2 = Dispatch.invoke(ds1, "a3", a4, a5, a6).toDispatch(); //功能調用,對ActiveX對象ds1的a3屬性執行a4(Dispatch.Put\Dispatch.Get等)操作,執行后a3的值為a5,a6為錯誤參數碼常定義為new int[1],
                      (注:call、get和put方法都是通過該方法實現的)
                        
                     5) Dispatch ds2 = Dispatch.put(ds, "a7","a8").toDispatch();//將ActiveX對象ds的屬性a4的值設置為a5,該方法返回類型同get一樣

                     6) Dispatch ds3 = Dispatch.call(ds1, "a9", a10);//該方法和get方法非常類似,他是把a9屬性賦值給a10

                     Ok其他的方法我覺得很容易理解,這里就不再做描述了。
                     
                      下面是一個關于excel的代碼,也許對您的進一步自學,會有好處
                     

    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.ComThread;
    import com.jacob.com.Dispatch;
    import com.jacob.com.Variant;

    public class ExcelDispatchTest {

        
    public static void main(String[] args) {
            ComThread.InitSTA();

            ActiveXComponent xl 
    = new ActiveXComponent("Excel.Application");
            
    try {
                System.out.println(
    "version=" + xl.getProperty("Version"));
                System.out.println(
    "version=" + Dispatch.get(xl, "Version"));
                Dispatch.put(xl, 
    "Visible"new Variant(true));
                Dispatch workbooks 
    = xl.getProperty("Workbooks").toDispatch();
                Dispatch workbook 
    = Dispatch.get(workbooks, "Add").toDispatch();
                Dispatch sheet 
    = Dispatch.get(workbook, "ActiveSheet").toDispatch();
                Dispatch a1 
    = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                        
    new Object[] "A1" }new int[1]).toDispatch();
                Dispatch a2 
    = Dispatch.invoke(sheet, "Range", Dispatch.Get,
                        
    new Object[] "A2" }new int[1]).toDispatch();
                Dispatch.put(a1, 
    "Value""123.456");
                Dispatch.put(a2, 
    "Formula""=A1*2");
                System.out.println(
    "a1 from excel:" + Dispatch.get(a1, "Value"));
                System.out.println(
    "a2 from excel:" + Dispatch.get(a2, "Value"));
                Variant f 
    = new Variant(false);
                Dispatch.call(workbook, 
    "Close", f);
            }
     catch (Exception e) {
                e.printStackTrace();
            }
     finally {
                xl.invoke(
    "Quit"new Variant[] {});
                ComThread.Release();
            }

        }


    地震讓大伙知道:居安思危,才是生存之道。
    posted on 2008-11-23 11:30 小尋 閱讀(2535) 評論(0)  編輯  收藏 所屬分類: c/c++/C#/pasic/vb/php/asp(.net)/win-cgi/xml...
    主站蜘蛛池模板: 久久国产色AV免费看| 最近中文字幕电影大全免费版| 成人免费看黄20分钟| 国产成人亚洲综合一区| 人妻视频一区二区三区免费| 亚洲一区二区三区无码国产 | 久久亚洲AV无码西西人体| 牛牛在线精品观看免费正 | 亚洲福利视频导航| 免费无码又爽又刺激高潮视频 | 亚洲jjzzjjzz在线观看| 成人免费毛片内射美女APP| 中文字幕亚洲精品无码| 国产免费看插插插视频| 一级大黄美女免费播放| 国产偷v国产偷v亚洲高清| 91福利免费体验区观看区| 国内精品久久久久影院亚洲| 日韩a级毛片免费视频| 一级做a爰性色毛片免费| 亚洲AV无码专区国产乱码4SE| 无码国产精品一区二区免费3p| 亚洲性一级理论片在线观看| 成年女人免费视频播放体验区| 精品女同一区二区三区免费播放| 亚洲欧洲精品成人久久奇米网| 中文字幕无码日韩专区免费| 亚洲综合久久成人69| 在线观看亚洲免费| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 亚洲伊人久久大香线焦| 又大又硬又爽免费视频| 午夜精品免费在线观看| 亚洲欧美国产国产综合一区| 不卡精品国产_亚洲人成在线| 99ee6热久久免费精品6| 亚洲AV无码专区在线观看成人| 永久亚洲成a人片777777| 2021久久精品免费观看| 一区二区免费电影| 亚洲综合色丁香婷婷六月图片|