演示使用 JACOB : Java COM Bridge 操纵 Word 文档

原始URL: http://blog.donews.com/dukejoe/archive/2010/04/28/1575574.aspx

 

package cn.com.hrbb.samples;

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

/**
*
* 演示使用 JACOB : Java COM Bridge 操纵 Word 文档
*
* 作者:高宏伟(DukeJoe)
* 时间:2010-04-28 15:49:34
* 地点:北京市朝阳区光华路甲8号和乔大厦10楼哈尔滨银行
* JDK: 1.6.0_17
* 环境版本:Windows XP Home Edition Service Pack 3
* Office 2007
* jacob-1.14.3
* QQ: 21807822
* E-MAIL: dukejoe@163.com
* 关键字: JACOB Word
* 注释:主要演示功能,增加文字内容,表格,及如何操纵表格
*
*/

public class Test1
{

    private ActiveXComponent objWord;
    private Dispatch document;

    private Dispatch wordObject;

    public static void main(String[] args)
    {
        Test1 t1 = new Test1();

        try
        {
            // 为了演示方便,请在下列目录新建一个空白文档
            t1.open("c://java_dev//test1.docx");

            t1.close();
        } catch (Exception e)
        {
            t1.close();
            System.err.println(e.getMessage());
            e.printStackTrace();
        }
    }

    public void open(String filename)
    {
        // 实例化 objWord
        objWord = new ActiveXComponent("Word.Application");

        // 将本地word对象赋到 wordObject上
        wordObject = objWord.getObject();

        // 使 word 为“可见”,主要是方便调试。正式应用时,把true改为false
        Dispatch.put(wordObject, "Visible", new Variant(true));

        // 获得Documents对象
        Dispatch documents = objWord.getProperty("Documents").toDispatch();

        // 调用 Open 打开 Document
        document = Dispatch.call(documents, "Open", filename).toDispatch();

        // 演示如何增加文字内容
        Dispatch disSelect;
        disSelect = Dispatch.call(objWord, "Selection").toDispatch();
        Dispatch.call(disSelect, "TypeText", "高宏伟");
        Dispatch.call(disSelect, "TypeParagraph");
        Dispatch.call(disSelect, "TypeText", "QQ:21807822");
        Dispatch.call(disSelect, "TypeParagraph");
        Dispatch.call(disSelect, "TypeText", "e-mail:dukejoe@163.com");

        // 演示如何增加表格
        Dispatch disTables;
        disTables = Dispatch.call(document, "Tables").toDispatch();
        Dispatch disRange;
        disRange = Dispatch.call(disSelect, "Range").toDispatch();
        Dispatch.call(disTables, "Add", disRange, 3, 4, 1);

        Dispatch disTable;
        disTable = Dispatch.call(disTables, "Item", 1).toDispatch();
        Dispatch.put(disTable, "ApplyStyleColumnBands", 1);

        // 演示如何操纵表格,比如设置对齐为“居中”
        // Unit : 5--wdLine 1--wdCharacter
        // Extend : 2--wdExtend
        Dispatch.call(disSelect, "MoveDown", 5, 2, 2);
        Dispatch.call(disSelect, "MoveRight", 1, 3, 2);
        Dispatch disParagraphFormat;
        disParagraphFormat = Dispatch.get(disSelect, "ParagraphFormat")
                .toDispatch();
        Dispatch.put(disParagraphFormat, "Alignment", 1);

        Dispatch.call(disSelect, "MoveDown", 5, 1);
        Dispatch.call(disSelect, "TypeParagraph");
        Dispatch.call(disSelect, "TypeText", "黑龙江省哈尔滨市");
        Dispatch.call(disSelect, "TypeParagraph");
        Dispatch.call(disSelect, "TypeText", "哈尔滨银行");
        Dispatch.call(disSelect, "TypeParagraph");
    }

    public void close()
    {
        // 关闭文档
        // 由于是演示程序,这里只简单的把word退出即可
        Dispatch.call(document, "Close");
        Dispatch.call(wordObject, "quit");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值