-
2020-09-27 18:07:30
import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.xwpf.usermodel.Document; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.xmlbeans.XmlOptions; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBody; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class FileCopyUtil{ public static void FileCopy(String[] inPath,String outPath) { File newFile = new File( outPath); List<File> srcfile = new ArrayList<>(); for (String s : inPath) { File file = new File(s); srcfile.add( file ); } try { OutputStream dest = new FileOutputStream( newFile ); ArrayList<XWPFDocument> documentList = new ArrayList<>(); XWPFDocument doc = null; FileInputStream in=null; for( int i = 0; i < srcfile.size(); i++ ) { in = new FileInputStream( srcfile.get( i ).getPath() ); OPCPackage open = OPCPackage.open( in ); XWPFDocument document = new XWPFDocument( open ); documentList.add( document ); } in.close(); for( int i = 0; i < documentList.size(); i++ ) { doc = documentList.get( 0 ); if( i != 0 ) { // 分页 documentList.get( i ).createParagraph().setPageBreak( true ); appendBody( doc, documentList.get( i ) ); } } // 分页 doc.createParagraph().setPageBreak( true ); doc.write( dest ); } catch( Exception e ) { e.printStackTrace(); } } /*public static void main(String[] args) { File newFile = new File( "F:\\outs.docx"); List<File> srcfile = new ArrayList<>(); File file1 = new File( "F:\\out.docx"); File file2 = new File( "F:\\outt.docx"); srcfile.add( file1 ); srcfile.add( file2 ); try { OutputStream dest = new FileOutputStream( newFile ); ArrayList<XWPFDocument> documentList = new ArrayList<>(); XWPFDocument doc = null; for( int i = 0; i < srcfile.size(); i++ ) { FileInputStream in = new FileInputStream( srcfile.get( i ).getPath() ); OPCPackage open = OPCPackage.open( in ); XWPFDocument document = new XWPFDocument( open ); documentList.add( document ); } for( int i = 0; i < documentList.size(); i++ ) { doc = documentList.get( 0 ); if( i != 0 ) { // 分页 documentList.get( i ).createParagraph().setPageBreak( true ); appendBody( doc, documentList.get( i ) ); } } // 分页 doc.createParagraph().setPageBreak( true ); doc.write( dest ); } catch( Exception e ) { e.printStackTrace(); } }*/ public static void appendBody( XWPFDocument src, XWPFDocument append ) throws Exception { CTBody src1Body = src.getDocument().getBody(); CTBody src2Body = append.getDocument().getBody(); List<XWPFPictureData> allPictures = append.getAllPictures(); // 记录图片合并前及合并后的ID Map<String, String> map = new HashMap<>(); for( XWPFPictureData picture : allPictures ) { String before = append.getRelationId( picture ); // 将原文档中的图片加入到目标文档中 String after = src.addPictureData( picture.getData(), Document.PICTURE_TYPE_PNG ); map.put( before, after ); } appendBody( src1Body, src2Body, map ); } private static void appendBody( CTBody src, CTBody append, Map<String, String> map ) throws Exception { XmlOptions optionsOuter = new XmlOptions(); optionsOuter.setSaveOuter(); String appendString = append.xmlText( optionsOuter ); String rgex = "<[\\s]*?w:sectPr[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?w:sectPr[\\s]*?>"; appendString = appendString.replaceAll( rgex, "" ); // 去除分页符 String srcString = src.xmlText().replaceAll( "<w:p><w:r><w:br w:type=\"page\"/></w:r></w:p>", "" ).replaceAll( "<w:r><w:br w:type=\"page\"/></w:r>", "" ); String prefix = srcString.substring( 0, srcString.indexOf( ">" ) + 1 ); String mainPart = srcString.substring( srcString.indexOf( ">" ) + 1, srcString.lastIndexOf( "<" ) ); String sufix = srcString.substring( srcString.lastIndexOf( "<" ) ); String addPart = appendString.substring( appendString.indexOf( ">" ) + 1, appendString.lastIndexOf( "<" ) ); if( map != null && !map.isEmpty() ) { // 对xml字符串中图片ID进行替换 for( Map.Entry<String, String> set : map.entrySet() ) { addPart = addPart.replace( set.getKey(), set.getValue() ); } } // 将两个文档的xml内容进行拼接 CTBody makeBody = CTBody.Factory.parse( prefix + mainPart + addPart + sufix ); src.set( makeBody ); } }
更多相关内容 -
word合并,多个word合并成一个
2016-10-18 10:46:12将多个word路径下的word合并成一个word 第一个路径合并后在第一个位置,最后一个路径合并后在最后 -
java运用poi填充word数据并将多个word合并为一个
2019-01-15 19:58:55java运用poi操作word,替换word中的占位符填充数据,并将多个word合并成一个word,附件是java代码和相关jar包,以及测试模板,需要注意是,只适用2007以上的word -
使用poi将多个word合并
2019-03-25 11:10:44使用poi将多个word合并,本方法经过测试,目前只支持多个doc格式合并成一个doc,如果是docx格式生成后打不开 -
java多个word文件合并.zip
2020-04-22 12:47:32实现将多个word文件合并成一个word文档,整理两种方法,所需资料比较齐全,已经过测试,可直接下载使用。 -
将多个docx格式的文档合并成一个文档并实现分页 MergeWord.java
2019-08-01 17:16:52将多个后缀为.docx文档合并成一个文档,并实现分页,避免因文档过多,打开过于麻烦 -
批量将多个 Word 文档合并成一个 Word 文件
2022-05-07 09:22:10概要:我们经常要处理很多 Word 文档,有时候我们希望将多个 Word 文件都批量的合并成一个 Word 文件,这个时候该怎么办呢?现在有一种简单的方法,能够批量的将多个 Word 文档合并成单个 Word 文件,这样对于我们来...概要:我们经常要处理很多 Word 文档,有时候我们希望将多个 Word 文件都批量的合并成一个 Word 文件,这个时候该怎么办呢?现在有一种简单的方法,能够批量的将多个 Word 文档合并成单个 Word 文件,这样对于我们来说阅读是非常的方便。
对于深度办公用户来说,经常要处理很多 Word 文件,有时候我们希望将多个 Word 文件合并成一个大的 Word 文件,这样方便我们打印,也方便我们整理文件里面的内容,同时也方便我们阅读,我们不需要在多个 Word 文档之间进行切换。
如果我们手工的将很多个 Word 文档进行复制粘贴合并的话,这样的效率非常的低,估计老板也不会同意,那么我们有没有一种方法能够批量的将多个 Word 文件合并成一个 Word 文件呢?答案肯定是有的,这里给大家讲解一个非常简单的方法,能够批量的将多个 Word 文件合并成一个 Word 文件,有了这个批量将多个 Word 文件合并成单个 Word 文件的方法之后,我们以后再有类似的需求的时候,就非常方便快速的合并完成了。
打开「我的ABC软件工具箱」,然后进入到 Word 合并成单个文件的功能中。这个合并的意思就是说将一个文件夹中的所有 Word 文件批量的合并成单个的 Word 文件。
进入到批量合并 Word 文件的功能中之后,我们需要单击右上角的添加文件夹来合并我们的 Word 文档:
当我们选择完需要批量进行合并的 Word 文件所在的文件夹之后,我们直接单击下一步,然后软件在这里会提示我们合并的顺序,我们这里可以批量的按照 Word 文件的文件名的升序或者降序来对这些 Word 文件进行一次性合并。
我们设置好合并的顺序之后直接单击下一步,然后软件就很快速的批量的将我们所有的 Word 文件都合并成单个的 Word 文件了,这样我们以后在阅读 Word 文档的时候,采用这个批量合并文档的方法,就可以很好的进行阅读或者整理了。
-
VBA 合并多个word文档到同一个新文档中
2019-03-18 10:07:46利用VBA语言将同一文件夹中的多个Word文档合并到一个新的Word中,使用简单快捷。 -
如何批量将多个 Word 文档快速合并成一个文档
2022-03-06 10:03:31我们可以根据需要将文件夹中的多个 Word 文档按照一定的顺序进行合并,这样可以把多个 Word 文档整合形成一个完整的文档。非常的方便与实用。 在前面的系列中,我们给大家介绍了怎么去将一个完整的 Word 文档按照...概要:「我的ABC软件工具箱」提供了文档合并的功能,其中就包括了 Word 拆分成单个文件。我们可以根据需要将文件夹中的多个 Word 文档按照一定的顺序进行合并,这样可以把多个 Word 文档整合形成一个完整的文档。非常的方便与实用。
在前面的系列中,我们给大家介绍了怎么去将一个完整的 Word 文档按照页数拆分成多个独立的 Word 文档。有拆分的需求就有合并的需求,所以今天就给大家介绍一下 Word 合并成单个文件的小妙招。今天要给大家介绍的是一款办公软件「我的ABC软件工具箱」,它可以指定文件夹,将文件夹内的多个 Word 文档按照一定的顺序进行合并,从而形成一个完整的 Word 文档。我们一起来看看这个小妙招吧!
打开「我的ABC软件工具箱」,左侧面板选择【合并拆分】,然后右侧就能看到【Word 合并成单个文件】的功能啦!
点击菜单按钮,会进入到选择文件夹的页面。
在当前页面就可以点击右上角的“添加文件夹”按钮来添加要合并的文件夹了,还可以直接将文件夹拖拽进来!
添加好后,界面就能显示我们已经添加的待合并的文件夹了。列表中的每一条记录是一个文件夹,此操作会将该文件夹中的 Word 文件合并成一个文件!当添加完文件夹后,就可以点击“下一步”按钮了,进入到设置参数信息的页面。
因为文件夹中往往会包含多个 Word 文档,所以我们需要指定文档是按照降序还是升序的方式进行合并。设置好并确认无误后点击下一步进入到设置输出目录的页面。
在这个页面,我们可以设置文件存储的位置。设置好并确认无误后,继续点击下一步,「我的ABC软件工具箱」就进行 Word 合并成单个文件的操作了。
一会儿,Word 合并的操作就处理完成了。这个界面上能看到处理文件的列表,还能看到合并了多少个文档!
到这里,Word 合并成单个文件的小妙招就介绍完了,是不是很简单很实用呢?
-
C#实现合并多个word文档的方法
2020-09-04 04:06:30主要介绍了C#实现合并多个word文档的方法,是C#针对Word文档操作的一个非常重要的技巧,需要的朋友可以参考下 -
将多个word文件合并为一个的方法
2021-04-02 12:57:311.将要合并的word文件放入一个文件夹(方便后期一下子选中); 2.如果对合并后的文件有顺序要求的话,可以在名称开头编好序号123456,然后按名称排序; 3.新建空白word用于汇总,点击插入-对象-对象中的文字; 4.... -
多个Word合并成一个
2020-04-30 10:40:23如何快速把多个Word文档合并成一个Word https://zhidao.baidu.com/question/1990921257863753787.html 插入--对象--文件中的文字 -
多个word文档合并为一个文档 Java实现
2021-11-11 17:26:07多个word文档合并为一个文档 Java实现 不用额外新建一个空文档,适合需要不断往一个文档中添加其他文档的情况。适合每页格式固定,添加文件新起一页的情况。可进行测试。 package could.com.hanwen.govapi.Test; ... -
javascript前端生成Word
2020-02-21 08:00:06最近做项目遇到要在Web上生成Word文件的需求。这里就用前端生成的办法作为临时解决方案。提供文字排版和表格设计,满足基本功能。如果需要其他功能,需要在Word上录制宏,再把代码转换成JS。 环境:只能是IE浏览器... -
Java操作word导出、多个word合并
2021-12-10 15:58:45导入maven <!--word导出--> <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.10.0<...--word合并--& -
Linux下把多个文件合并成一个文件 - 卡饭网
2020-12-19 06:10:57互盾PDF分割合并工具将多个PDF文件合并成一个PDF文档互盾PDF分割合并工具将多个PDF文件合并成一个PDF文档 互盾PDF分割合并工具将多个PDF文件合并成一个PDF文档 一.下载并安装软件,双击打开软件如图. 二.点击软件最... -
如何通过java将多个word文档合成一个wor
2021-02-12 19:11:46展开全部国内有个免费32313133353236313431303231363533e78988e69d8331333431356133的jar(Free Spire.Doc for Java),可用来合并Word文档,分两种合并方法:1.合并的内容新起一页;2.合并的内容承接上文段落。1.新起... -
将多个word文档的内容合并到一个文档
2021-11-16 18:39:411,打开"合并文档" ,点选"插入"-"文件"选项。 2,选择需要插入的"全部文档" ,点击"插入"按钮。 3,所有的文档内容全部插入到一个Word文档中。 进入渠道:打开word-插入-文本-对象-文件中的文字 -
使用Java合并多个word文档
2018-08-24 15:11:12/** * 合并多个word文档内容 * @author Administrator * */ public class HbWordData { /** * @param fileList 合并多个word文档内容 * @param savepaths 合并保存新文档 */ public static void ... -
电脑怎么将多个PPT文件合并成一个
2021-08-02 00:23:00那么今天小编跟大家分享的是电脑怎么将多个PPT文件合并成一个。具体如下:1. 首先我们需要在电脑中打开一份PPT文档。2. 进入主界面之后我们点击上方功能栏中的“审阅”选项。3. 然后我们点击下一行中的“比较”选项... -
使用卓正PageOffice--实现多个Word文件合并
2021-04-26 19:42:021.把多个word文档分别插入到模板中指定数据区域生成一个Word文档。首先介绍一下DataRegion的Value属性,如果给Value赋值一个字符串常量或变量,那么数据区域的内容就是这段文本;如果给Value赋值一个”[Word]”开头... -
如何将多个excel表格合并成一个_如何将多个PDF的首页整合成一个单独的PDF
2020-11-13 17:48:03我们经常会接触很多电子文档,目前大部分都是PDF格式的,有时很多资料我们都只需要其中的第一页,那么如何把很多个PDF的首页单独弄出来再合并成一个新的PDF文件呢?这里我们需要进行两步操作,第一步提取,第二步... -
Java 合并Word文档
2021-02-12 19:11:45通常合并文档有两种方式,一种是直接将被合并文档的正文承接在上一个文档的最后一个段落末尾;另一种则是被合并文档的内容从新的一页开始显示。此次代码演示所需工具是Free Spire.Doc for Java。请从官网上下载获取... -
vbs合并word文档
2012-01-26 12:29:23vbs合并word文档代码。把这个vbs合并word文档.txt改为vbs合并word文档.vbs,然后和两个word文档(分别为a.doc和b.doc)放在一个文件夹中,双击后即可合并。 -
POI合并多个相同的Excel或者合并Word文件
2019-02-19 13:44:15相同格式的excel进行合并,或者对多个word文档进行合并,word文档包含图片。 -
C# 实现将多个word文档合并成一个word文档的功能
2017-11-04 11:01:00前段时间项目上遇到这么一个需求,需要将多个OCR识别的word文档合并成一个,于是就在网上找了找,自己修改了一下。在这里跟大家分享一下,希望有用的到的。 要做多word文档合并,首先要导入Microsoft.Office.... -
java实现将多个word文档合并
2019-10-12 14:41:351、使用OPCPackage将每一个文档打开并且存储起来 2、将其转成字符串合并 3、再将字符串转换成对应得XWPFDocument 对象写出即可 代码如下: /** * 合并docx文件 * * @param srcDocxs 需要合并的目标docx文件 * @param... -
怎么将多个jpg合并成一个pdf
2021-03-13 03:49:34先使用虚拟打印机等把Word做成PDF文件:方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;方法二:使用专门的转换软件,把文件转成PDF... -
word怎么插入另一个word文档,把两个word合并成一个
2021-02-16 17:44:09插入——对象——文件中的文字——选择要插入的文件,即可!