`
lhgyy00
  • 浏览: 144409 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

用Jcom生成word,以及在word中添加表格

阅读更多

JCom可以支持打印,支持生成word,生成Excel,并且可以将文本转换成pdf

这里给出生成word和添加表格的代码:import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;

import jp.ne.so_net.ga2.no_ji.jcom.JComException;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;


public class TestCreatWord {
	/**
	 * @param filePath  --文件的路径
	 * @param text		--插入的文本的内容
	 * @param fontName	--字体的名字
	 * @param fontSize	--字号
	 * @param fontBold	--是否加粗
	 * @param align		--对齐方式:comment--0:left,1:center,2:right 
	 */
	public synchronized void createWord(String filePath, String text,   
            String fontName, String fontSize, Boolean fontBold, int align) {   
        ReleaseManager rm = new ReleaseManager();   
        IDispatch docApp = null;   
        try {   
            docApp = new IDispatch(rm, "Word.Application");   
  
            IDispatch documents = (IDispatch) docApp.get("Documents");   
  
            documents.method("add", null);   
  
            IDispatch selection = ((IDispatch) docApp.get("Selection"));   
  
            IDispatch paragraphFormat = ((IDispatch) selection   
                    .get("ParagraphFormat"));   
            paragraphFormat.put("Alignment", new Integer(align));// 对齐方式0:left,1:center,2:right   
            IDispatch font = ((IDispatch) selection.get("Font"));   
            font.put("name", fontName);   
            font.put("Size", fontSize);   
            font.put("Bold", fontBold);   
            selection.method("TypeText", new Object[] { text });   
  
            ((IDispatch) docApp.get("ActiveDocument")).method("saveAs",   
                    new Object[] { filePath, new Integer(0) });   
  
        } catch (JComException e) {   
            e.printStackTrace();   
        } finally {   
            try {   
                if (docApp != null) {   
                    ((IDispatch) docApp.get("ActiveDocument")).put("Saved",   
                            new Boolean(true));   
  
                    docApp.method("quit", null);   
                    docApp = null;   
                }   
                rm.release();   
                rm = null;   
            } catch (JComException e) {   
  
                e.printStackTrace();   
            }   
        }   
  
    } 
	
	
	/**
	 * @param filePath --文件路径
	 * @param rowsNum  --行数
	 * @param colsNum  --列数
	 * @param vals     --数组
	 */
	public synchronized void addTable(String filePath, int rowsNum,   
            int colsNum, String[][] vals) {   
        ReleaseManager rm = new ReleaseManager();   
        IDispatch docApp = null;   
        try {   
            docApp = new IDispatch(rm, "Word.Application");   
  
            IDispatch documents = (IDispatch) docApp.get("Documents");   
  
            IDispatch doc = (IDispatch) documents.method("open",   
                    new Object[] { filePath });// open   
  
            IDispatch selection = ((IDispatch) docApp.get("Selection"));   
            selection.method("endKey", new Object[] { new Integer(6) });// 光标到文档末尾   
  
            //selection.method("InsertBreak", new Object[] { new Integer(7) });// 插入一个分页符   
            IDispatch range = (IDispatch) doc.method("Range", new Object[] {   
                    selection.get("start"), selection.get("start") });// 获得一个range,不知道干什么的   
            range.method("InsertBreak", new Object[] { new Integer(2) });// 插入一个分页符   
            selection.put("start", ((Integer) selection.get("start")) + 1);//选取的开始点右移一个位置,不知道为什么,但是不加这一行不行,变成整篇文档横排了   
  
//          selection = ((IDispatch) docApp.get("Selection"));   
            range = (IDispatch) doc.method("Range", new Object[] {   
                    selection.get("start"),   
                    ((IDispatch) doc.get("Content")).get("end") });//获得一个范围   
            IDispatch pageSetup = (IDispatch) range.get("PageSetup");//获得页面设置   
            pageSetup.put("Orientation", new Integer(1));//横排   
            IDispatch tables = ((IDispatch) doc.get("Tables"));// 得到doc中的表格集合   
            tables.method("add", new Object[] { selection.get("range"),   
                    rowsNum, colsNum });// 增加一张表   
            IDispatch table = (IDispatch) tables.method("item",   
                    new Object[] { new Integer(1) });// 获得刚增加的表格   
            IDispatch rows = ((IDispatch) table.get("rows"));// 得到行集合   
  
            for (int i = 1; i <= rowsNum; i++) {   
                IDispatch row = (IDispatch) rows.method("item",   
                        new Object[] { new Integer(i) });   
                IDispatch cells = (IDispatch) row.get("Cells");// 单元格集合   
  
                for (int j = 1; j <= colsNum; j++) {   
                    IDispatch cell = (IDispatch) cells.method("item",   
                            new Object[] { new Integer(j) });   
                    ((IDispatch) cell.get("Range")).put("Text",   
                            vals[i - 1][j - 1]);//为表格中的格子赋值   
                }   
            }   
  
            ((IDispatch) docApp.get("ActiveDocument")).method("saveAs",   
                    new Object[] { filePath, new Integer(0) });   
  
        } catch (JComException e) {   
            e.printStackTrace();   
        } finally {   
            try {   
                if (docApp != null) {   
                    ((IDispatch) docApp.get("ActiveDocument")).put("Saved",   
                            new Boolean(true));   
  
                    docApp.method("quit", null);   
                    docApp = null;   
                }   
                rm.release();   
                rm = null;   
            } catch (JComException e) {   
  
                e.printStackTrace();   
            }   
        }   
  
    } 
	public static void main(String[] args) {
		String [][]  aa = new String[10][10];
		for (int i = 0; i < aa.length; i++)
		{
			for (int j = 0; j < aa[i].length; j++)
			{
				aa[i][j] = "empty";
			}
		}
			
		new TestCreatWord().addTable("c:\\aa.doc", 10, 10, aa)	;
	}
}
 
分享到:
评论

相关推荐

    jcom.jar和jcom.dll

    标题中的"jcom.jar和jcom.dll"是两个关键组件,它们在Java环境中用于与Microsoft Office应用程序,如Visio、Word和Excel进行交互,并支持文件转换功能。jcom.jar是Java类库,它包含了用于与DLL(动态链接库)交互的...

    Java中使用JCOM操作Office对象

    例如,可以轻松地实现在 Java 应用中添加“导出到 Excel”的功能,甚至处理更复杂的任务,如在 Word 中生成报告或通过 Powerpoint 创建演示文稿。 要开始使用 JCOM,首先需要从 SourceForge 下载 JCOM 的 API,其中...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java开源包8

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包6

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包5

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包10

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包7

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包9

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包101

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Java资源包01

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics