<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...
    主站蜘蛛池模板: 无码天堂va亚洲va在线va| 亚洲精品国产福利在线观看| 亚洲国产成人精品无码区二本| **毛片免费观看久久精品| 久久精品a亚洲国产v高清不卡| 日韩精品免费在线视频| 婷婷久久久亚洲欧洲日产国码AV| 99re6在线精品免费观看| 亚洲国产精品无码久久久蜜芽| a级毛片无码免费真人久久| 亚洲精品卡2卡3卡4卡5卡区| 日本三级在线观看免费| 亚洲AV无码码潮喷在线观看 | 免费精品国产自产拍观看| 亚洲成a人无码亚洲成av无码| 免费看美女被靠到爽| 亚洲AV色无码乱码在线观看 | 久久精品九九亚洲精品天堂| 国产在线一区二区综合免费视频| 亚洲AV日韩AV永久无码绿巨人| 一级毛片aaaaaa免费看| 亚洲男人天堂2018av| 精品国产免费观看久久久| 免费无码一区二区| 久久精品国产亚洲综合色| 亚洲免费观看在线视频| 亚洲精品美女久久7777777| 成人伊人亚洲人综合网站222| 国产在线国偷精品免费看| 亚洲视频在线一区二区三区| 色吊丝最新永久免费观看网站| 亚洲第一视频在线观看免费| 亚洲成人午夜在线| 永久免费av无码网站大全| 国产免费MV大全视频网站| 亚洲日本国产乱码va在线观看| 国产一级淫片免费播放电影| a毛片免费全部在线播放**| 亚洲国产综合自在线另类| 四虎永久免费地址在线观看| 久久成人无码国产免费播放|