<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...
    主站蜘蛛池模板: 91青青青国产在观免费影视| 无人影院手机版在线观看免费| 亚洲久本草在线中文字幕| 皇色在线视频免费网站| 猫咪免费人成网站在线观看入口| 久久精品国产亚洲麻豆| 最近中文字幕免费mv视频7| 巨胸喷奶水视频www免费视频| 亚洲精品成人网站在线播放| 免费乱码中文字幕网站| 日韩免费人妻AV无码专区蜜桃 | 一级毛片试看60分钟免费播放| 亚洲av无码一区二区三区不卡| 人妻视频一区二区三区免费| 国产成人无码精品久久久久免费| 亚洲黄色网址在线观看| 亚洲成片观看四虎永久| 午夜国产精品免费观看| a级毛片免费网站| 亚洲色偷精品一区二区三区| 国产亚洲精品国产| 日本特黄特色免费大片| 一级毛片在线免费看| 美女黄色毛片免费看| 久久精品国产亚洲AV蜜臀色欲 | 亚洲狠狠婷婷综合久久| 亚洲国产一二三精品无码| 日韩视频免费在线| 亚洲视频在线免费看| 久久久精品视频免费观看| 亚洲一本到无码av中文字幕| 亚洲一区二区影院| 国产亚洲人成A在线V网站| 日本19禁啪啪无遮挡免费动图| 最近中文字幕国语免费完整 | 色婷婷六月亚洲婷婷丁香| 亚洲日本在线观看视频| 国产免费爽爽视频免费可以看| 亚洲一级毛片免费看| 叮咚影视在线观看免费完整版| 一区二区免费在线观看|