<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

    朋友的網(wǎng)站

    搜索

    •  

    最新評論

    大家好!我是小尋

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

                 我將一個關(guān)于JACOB的代碼分成下面幾個步驟:

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

               其中的a1的值和你需要調(diào)用的ActiveX控件有關(guān)

    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控件的控制權(quán)。
                     (注:淺析JACOB 中提到過Variant類,這里的ax.getObject()便是獲得該對象,我們將其轉(zhuǎn)化為任何對象(類型))
             
                     3) Dispatch ds1 = Dispatch.get(ds, "a2").toDispatch(); //獲取該ActiveX對象數(shù)據(jù)結(jié)構(gòu)中的a2屬性
       
                     4) Dispatch d2 = Dispatch.invoke(ds1, "a3", a4, a5, a6).toDispatch(); //功能調(diào)用,對ActiveX對象ds1的a3屬性執(zhí)行a4(Dispatch.Put\Dispatch.Get等)操作,執(zhí)行后a3的值為a5,a6為錯誤參數(shù)碼常定義為new int[1],
                      (注:call、get和put方法都是通過該方法實現(xiàn)的)
                        
                     5) Dispatch ds2 = Dispatch.put(ds, "a7","a8").toDispatch();//將ActiveX對象ds的屬性a4的值設(shè)置為a5,該方法返回類型同get一樣

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

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

    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...
    主站蜘蛛池模板: 亚洲女久久久噜噜噜熟女| 一级毛片免费毛片一级毛片免费 | 免费在线人人电影网| 日韩a在线观看免费观看| 亚洲欧洲免费无码| 日本免费一区尤物| 黄色a三级免费看| 中文字幕专区在线亚洲| 中文字幕无线码免费人妻| 亚洲成av人片在线观看无码不卡| 香蕉视频在线免费看| 亚洲国产精品成人久久| **毛片免费观看久久精品| 亚洲一区精彩视频| 免费一级毛片在线播放| 中文字幕高清免费不卡视频| 国产亚洲欧洲精品| 麻豆国产精品免费视频| 亚洲精华国产精华精华液网站| 全亚洲最新黄色特级网站 | 男女猛烈无遮掩视频免费软件| 国产亚洲精品国看不卡| 99re这里有免费视频精品 | 亚洲春色另类小说| 日韩毛片免费在线观看| 51午夜精品免费视频| 亚洲伊人久久大香线蕉苏妲己| 日韩一区二区a片免费观看| 国产亚洲精品成人久久网站| 亚洲女同成av人片在线观看| 免费成人福利视频| 一级黄色免费毛片| 亚洲一级高清在线中文字幕| 四虎影视精品永久免费| 99久久99久久免费精品小说| 亚洲av无码专区在线观看亚| 国产aⅴ无码专区亚洲av| 免费人成在线视频| 大地资源在线资源免费观看| 亚洲一区二区免费视频| 国产亚洲一区区二区在线|