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

jacob合并几个word文件到一个word文件

    博客分类:
  • java
阅读更多

     因项目需要将几个word文件合并到一个word文件,后面附项目运用的jar包jacob-1.9

jacob运用中,需要将附件内的jacob.dll放到windows/system32下

     直接上代码:

public static void main(String[] args) {
			List list  = new ArrayList();
			String file1= "D:\\file1.doc";
			String file2= "D:\\file2.doc";
			String file3= "D:\\file3.doc";
			list.add(file1);
			list.add(file2);
			list.add(file3);
			uniteDoc(list,"d:\\file.doc");
	}
	public static void uniteDoc(List fileList, String savepaths) {
		if (fileList.size() == 0 || fileList == null) {
			return;
		}
		//打开word
		ActiveXComponent app = new ActiveXComponent("Word.Application");//启动word
		try {
			// 设置word不可见
			app.setProperty("Visible", new Variant(false));
			//获得documents对象
			Object docs = app.getProperty("Documents").toDispatch();
			//打开第一个文件
			Object doc = Dispatch
                .invoke(
                        (Dispatch) docs,
                        "Open",
                        Dispatch.Method,
                        new Object[] { (String) fileList.get(0),
                                new Variant(false), new Variant(true) },
                        new int[3]).toDispatch();
			//追加文件
			for (int i = 1; i < fileList.size(); i++) {
				Dispatch.invoke(app.getProperty("Selection").toDispatch(),
                    "insertFile", Dispatch.Method, new Object[] {
                            (String) fileList.get(i), "",
                            new Variant(false), new Variant(false),
                            new Variant(false) }, new int[3]);
			}
			//保存新的word文件
			Dispatch.invoke((Dispatch) doc, "SaveAs", Dispatch.Method,
                new Object[] { savepaths, new Variant(1) }, new int[3]);
			Variant f = new Variant(false);
			Dispatch.call((Dispatch) doc, "Close", f);
		} catch (Exception e) {
			throw new RuntimeException("合并word文件出错.原因:" + e);
		} finally {
			app.invoke("Quit", new Variant[] {});
		}
	}

 

分享到:
评论
3 楼 229022568 2014-08-04  
Exception in thread "main" java.lang.RuntimeException: 合并word文件出错.原因:java.lang.ClassCastException: java.io.File cannot be cast to java.lang.String
at jacob.Demo.uniteDoc(Demo.java:65)
at jacob.Demo.main(Demo.java:24)

为什么我一直报这个错误啊?有人知道吗
2 楼 river_ppp 2013-10-25  
非常好,很有用处!!!!!!!!!!!!!!!!!!
1 楼 mysky_6032 2011-09-22  
谢谢!正在用这个

相关推荐

    java 使用POI合并两个word文档.docx

    4. 将两个 Word 文档的内容合并到新的 Word 文档中,使用 appendBody 方法将第二个文档的内容追加到第一个文档中。 5. 保存新的 Word 文档,使用 FileOutputStream 保存文档。 在上面的代码中,我们可以看到,main ...

    java2word 文档

    c) **多文档合并**:Java2Word还支持将多个Word文档合并成一个。开发者可以读取每个文档,然后将内容逐一添加到目标文档中,实现多个文档的整合。 这些示例代码虽然未在文本中给出,但在实际的Java2Word文档中应有...

    JAVA与WORD接口jacob_1.9

    Java与Word接口Jacob_1.9是一个用于在Java应用程序中操作Microsoft Word文档的库。Jacob全称为Java COM Bridge,它提供了Java与COM组件之间的桥梁,允许开发者通过Java代码调用和控制Word的功能,如创建、读取、修改...

    jacob-1.17

    在"jacob-1.17"压缩包中,包含了以下几个关键文件: 1. **jacob-1.17-x64.dll**:这是针对64位操作系统的Jacob库动态链接库文件。在运行Java程序时,这个DLL文件会被加载,使得Java代码能够调用64位的COM组件。 2....

    jacob操作office分享

    4. **自动化Office任务**:对于需要批量处理的Office文档,例如批量转换文件格式、合并多个文档,Jacob都能提供高效的解决方案。 5. **与其他COM组件交互**:Jacob不仅仅局限于Office,它还可以用于与任何支持COM...

    jacob-1.18-M2.rar

    标题中的"jacob-1.18-M2.rar"是一个压缩包文件,其中包含了Jacob库的不同版本和针对不同处理器架构的动态链接库(DLL)文件。"jacob.jar"是Jacob的核心Java库,包含了Java代码,使得Java应用程序能够通过JNI(Java ...

    Jacob-1.17-m4 最新资源包

    在Jacob-1.17-M4中,可能包含了一个或多个DLL文件,这些文件是Jacob与Windows操作系统通信的桥梁,允许Java应用程序利用COM接口执行例如创建、修改和导出Word文档等操作。 在描述中提到的“jar包”,即Java Archive...

    Office 编程 jacob

    - **Word操作**:可以使用Jacob创建一个新的Word文档,然后插入文本、段落、图片,设置字体样式,进行页面布局,甚至执行Word内置的宏命令。 - **Excel操作**:可以读取和写入Excel工作表的数据,包括公式计算、...

    jcob word excel pdf java

    例如,你可以使用JCob创建一个新的Word文档,添加文本、段落,甚至执行复杂的格式化任务,如调整字体、颜色和对齐方式。 Excel方面,JCob提供了访问和操作电子表格的功能。你可以创建新的工作簿,填充数据,设置...

Global site tag (gtag.js) - Google Analytics