精华内容
下载资源
问答
  • 在项目需求中,需要对于一个word模板文档生成相对应的word文件,而此word模板是页的并且需要在最终文件中生成相应的目录,由于项目环境是Linux,所以舍弃了jacob(windows环境)。然后主要是研究了Apache poi 进行...

    在项目需求中,需要对于一个word模板文档生成相对应的word文件,而此word模板是多页的并且需要在最终文件中生成相应的目录,由于项目环境是Linux,所以舍弃了jacob(windows环境)。然后主要是研究了Apache poi 进行word操作以及如何生成目录。
    主要分两个部分介绍:

    1. Apache poi 操作word:主要是通过XWPFDocument对象进行操作,api 地址:http://poi.apache.org/apidocs/dev/
    //读取word文件
    InputStream is = new FileInputStream(path);  
    XWPFDocument doc = new XWPFDocument(is);  
    List<IBodyElement> elements=  doc.getBodyElements();//获取所有元素(段落和表格)
    int pIndex =0;
    int tIndex =0;
    for(int i=0 ; i< elements.size(); i++) {
    	IBodyElement e = elements.get(i);
    	//判断元素类型:段落/ 表格
    	if(BodyElementType.PARAGRAPH.equals(e.getElementType())) {
    		XWPFParagraph pa = e.getBody().getParagraphArray(pIndex); //获取段落
    		List<XWPFRun> runs = paragraph.getRuns(); //获取段落文本
                    for (XWPFRun run : runs) {
                          ...替换文本
                    }
    	}
    	else if(BodyElementType.TABLE.equals(e.getElementType())){//表格
                   XWPFTable ta = e.getBody().getTableArray(tIndex);
                   List<XWPFTableRow> rows = ta.getRows(); //获取所有行
                   for (XWPFTableRow row : rows) { 遍历每行
    			List<XWPFTableCell> cells = row.getTableCells(); //获取每行单元格
    			for (XWPFTableCell cell : cells) { //遍历单元格
    				List<XWPFParagraph> paragraphs = cell.getParagraphs(); //获取单元格段落
    				for (XWPFParagraph paragraph : paragraphs) {
    					List<XWPFRun> runs = paragraph.getRuns();//获取单元格文本
    					for (XWPFRun run : runs) {
    						...替换文本
    					}
    				}
    			}
    		}
        	}
    }
    

    操作word方面还是很方便,可以参考一些更详细的:
    https://blog.csdn.net/eye9093/article/details/77368703
    https://blog.csdn.net/u012775558/article/details/79678701

    主要是介绍一下目录如何生成
    2. .Apache poi 生成word目录: 需要了解ooxml(Office Open XML)的大体结构,参考:http://www.datypic.com/sc/ooxml/s-wml.xsd.html,主要是通过xml标签进行识别分页。

    之前在网上也查阅了很多,发现目录的页数问题始终没有一个好的解决方案,之前看的可以通过转成pdf计算页数,但是这个耗时太长,特别是对于我们项目word页数较多的时候转换再重写消耗的时间很长。所以选择再去研究一下word对应的xml文件是否有思路去解决这一问题。
    我们选择的是xxx.docx 文件,通过word另存为xml
    在这里插入图片描述

    获取到此word文件的xml文件,xml文件结构如下:
    在这里插入图片描述
    其实大体看一下可以大致理清xml的结构,而我们主要是关注这一个标签
    在这里插入图片描述
    这个标签就是分页之后产生的标签(经测试插入空白页不会产生这个标签,如果是遇到表格处于分页那么分页后的表格的第一个单元格必须有文本,不然也不会产生这个标签,而且文档必须有页码),而通过获取这个标签就可以计算出页数,可以看出这个标签位置是<w:p>下的<w:r>下,可以通过poi判断这个标签是否存在:
    在这里插入图片描述

    主要代码如下:

    .//承接上面的获取的段落
    int num =1;//页数
    XWPFParagraph pa = e.getBody().getParagraphArray(pIndex); //获取段落
    List<CTR> ctrlist = pa.getCTP().getRList();//获取<w:p>标签下的<w:r>list
    for(int j=0; j < ctrlist.size(); j++) {  .//遍历r
    	CTR r = ctrlist.get(j); 
            List<CTEmpty> breaklist = r.getLastRenderedPageBreakList();//判断是否存在此标签
            if(breaklist.size() > 0) {
           		num++; //页数添加
            }
    }
    

    由此可以高效率的获取到页码,生成目录的代码可以参考:https://www.jianshu.com/p/0a32d8bd6878

    所以大体功能实现思路如下:

    1. POI读取word模板文件(模板必须有页码并且目录位置先用标签标记),然后进行模板内容替换。
    2. 内容替换完毕后,再整体遍历所有段落和表格,在添加目录项时将对应的目录标题和页码作为参数传入,生成目录。
    3. 全部生成完毕后,将文档输出到目标文件。
    展开全文
  • Word生成目录

    千次阅读 2008-05-01 13:56:00
    21:26 如何用WORD自动生成目录WORD根据文章的章节自动生成目录不但快捷,而且阅读查找内容时也很方便,只是按住Ctrl点击目录中的某一章节就会直接跳转到该页,更重要的是便于今后修改,因为写完的文章难免次...
    2007年06月09日 星期六 21:26
    如何用WORD自动生成目录

    用WORD根据文章的章节自动生成目录不但快捷,而且阅读查找内容时也很方便,只是按住Ctrl点击目录中的某一章节就会直接跳转到该页,更重要的是便于今后修改,因为写完的文章难免多次修改,增加或删减内容。倘若用手工给目录标页,中间内容一改,后面页码全要改是一件很让人头痛的事情。应该自动生成的目录,你可以任意修改文章内容,最后更新一下目录就会重新把目录对应到相应的页码上去。   步骤:(以下内容在WORD2003中操作,其它版本WORD略有差别,但大同小异。)

    1.在[格式]中选[样式与格式]


      

    2.出现右边的一条“样式格式”栏,这里面主要就是用到标题1,标题2,标题3。把标题1,标题2,标题3分别应用到文中各个章节的标题上。例如:文中的“第一章 制冷概论”我们就需要用标题1定义。而“1.1制冷技术的发展历史”就用标题2定义。如果有1.1.1×××那就用标题3来定义。


      

    3.当然标题1,标题2,标题3的属性(如字体大小,居中,加粗,等等)可以自行修改的。修改方法:右键点击“标题1”选“修改”,会弹出修改菜单,您可以根据自己的要求自行修改。



      

    4.用标题1,2,3分别去定义文中的每一章节。定义时很方便,只要把光标点到“第一章 制冷概论”上,然后用鼠标左键点一下右边的标题1,就定义好了;同样方法用标题2,3定义1.1;1.1.1;依此类推,第二章,第三章也这样定义,直到全文节尾。


    5.当都定义好后,我们就可以生成目录了。把光标移到文章最开头你要插入目录的空白位置,选[插入]--[引用]--[索引和目录]


    6.选第二个选项卡[目录],然后点右下的确定。就OK了。


    上图就是自动生成的目录

    7.当你重新修改文章内容后,你需要更新一下目录,方法是:在目录区域内,点右键,选[更新域]


    8.当选[更新域]后,会出现上图的选框,选第二个“更新整个目录”点确定。就OK了。





    展开全文
  • 有时候,在对长篇文档或书籍排版的时候,可能是多人同时编写工作;或者某一个记录工作计划的文档需要拆分为不同部分,...那么,我们应该如何进行拆分生成多个文档,并且合并多个文档呢? 具体过程可参考:http://w...

    有时候,在对长篇文档或书籍排版的时候,可能是多人同时编写工作;或者某一个记录工作计划的文档需要拆分为不同部分,然后分发给不同的人。这时候,我们可能需要对文档前期的结构进行拆分,将一个文档拆分成多个分发给每个人。当所有人完成编辑任务以后,我们可能还需要将所有人的文档全部合并到一个文档中,对其进行重新整理。那么,我们应该如何进行拆分生成多个文档,并且合并多个文档呢?

    具体过程可参考:http://www.wordlm.com/html/6577.html

    展开全文
  • word2013自动生成目录的时候,如何调整目录格式?

    万次阅读 多人点赞 2018-05-18 20:10:28
    图为要求的格式目录:(1)设置标题等级:我们在word中按照自动生成目录的方式,对每一级标题、二级标题、三级标题等分别添加样式格式(添加方法简单,简单见下图。也可自行百度,很简单。)选中要修改成标题的...

    背景介绍:毕业之际,最烦的就是时间不够,重要的时间还浪费在各种修改格式上面,很多格式在网上一时找不到解决办法。比如word自动生成目录这个。图为要求的格式目录:

    (1)设置标题等级:我们在word中按照自动生成目录的方式,对每个一级标题、二级标题、三级标题等分别添加样式格式(添加方法简单,简单见下图。也可自行百度,很简单。)选中要修改成标题的文字,根据需求设置标题等级。

    (2)自动添加目录:具体见下图(引用-目录-自动目录)


    添加目录之后,可以删除目录,修改目录。修改目录格式之后,自动更新目录格式。下面介绍如何根据需求,手动设置想要的目录格式。

    (3)自定义目录格式

    点击“自定义目录”,进入目录设置。


    上图中,常规+选项都可以设置目录的大纲显示级别。点击修改:即可设置更加详细的格式。


    选择要修改的目录(如图中的目录1、目录2、目录3),点击修改。在如下框图里面进行格式样式的设置,简单设置可以在图中间的“格式”框中设置,更为详细的设置移步底下的红色框图。

    特别注意:

    这里选择目录1,意思是修改“一级标题”的格式;

    同理,选择目录2,意思是修改“二级标题”的格式,剩下的以此类推。

    笔者最开始的时候一直没弄清楚,修改琢磨半天。与其说是目录1,不如说成标题1,更能让人理解。



    好记性不如烂笔头,技术问题及时更新博客,以免日后忘记。



    展开全文
  • word多级目录设置和自动生成目录

    千次阅读 2019-12-08 16:42:22
    word2016为例。 一、如何设置多级目录 ...二、如何将多级目录引用到多级标题 ...三、如何将多级标题格式导入到模板,新生成的文档自带多级标题 ...已有的文档没有多级标题,需要...多个地方需要注意设置。 ...
  • 生成word方法可以参考 链接: https://blog.csdn.net/qq_40977118/article/details/106918521. 这里需要修改controller,将循环生成word下载到指定文件夹下,然后将完全限定名放入list中,最后将list中所有文件打成...
  • word文档添加多个目录

    千次阅读 2020-04-12 20:13:13
    目录共有三级结构,所以假设总目录使用大纲级别4,第x篇使用大纲级别5,第x部分使用大纲级别6 1.1在想要添加总目录字符的位置添加总目录TC 然后点击 在刚才插入TC的位置会出现: 将其修改为: “总...
  • Word邮件合并功能详解:合并后生成多个word文档,删除空白页 最近在实习,干了很多打杂得工作,所以office软件用的很多很多,瞬间觉得自己可以去裸考计算机二级了哈哈哈哈哈哈。今天因为工作用到了邮件合并这个功能...
  • WORD中自动生成目录

    千次阅读 2007-04-17 16:51:00
    如何在WORD中自动生成目录2006-12-19 12:52 如何在WORD中自动生成目录 微软WORD软件大家都很熟悉,但有不少功能我们并没有用到,其中不乏非常实用的。比如常常被人忽略但很实用的如何用WORD自动生成目录。 优点...
  • 眼下快到毕业季,又到了大家疯狂写(shui)论文的时候了,如果是使用latex的大佬,大可不必为论文的格式而烦恼,但是还是有相当一大批同学是得用word写论文的,那么格式问题真是一非常烦心的事情,总是这里有点...
  • Word多级标题设置和自动生成目录

    万次阅读 2018-11-24 11:47:46
    在用word写学位论文或比较长的报告的时候,经常在写完主要内容后要设置多级标题的格式并自动生成目录,这里记录分享一下自己的一些经验,虽然不一定是最佳的方法,但理解起来比较简单,也能比较有效的解决问题。...
  • 如何用word 2013 自动生成目录

    千次阅读 2014-03-31 16:00:43
    导引:用Word实现自动目录生成主要用到两菜单,视图菜单(view)和引用菜单(references)。 开始: 1. 点击视图菜单,在左侧第一栏 会看到 五种阅读模式, 分别是 阅读模式(Read Mode), 打印布局(print ...
  • Word文档如何自动生成目录

    千次阅读 热门讨论 2018-02-11 11:38:11
    内容其实我个人觉得Word目录生成方式和CSDN的目录生成方式有很相似之处,接下来咱们就看看具体步骤。步骤一:我们根据实际需要在开始——段落栏中设置一级标题和二级标题,如图,“引言”是一级标题,“编写目的”...
  • Word 按章节生成图表目录

    千次阅读 2013-03-27 08:13:34
    经过一番探索,终于很曲折地完成了这么功能:按照图片的章节对图片进行题注设置,交叉引用,最后对整篇论文进行图表目录生成。  粗略记述一下,以备后用,以供大家参考。 最后结果附图:   网上有的...
  • 每次写实验报告,详细设计,毕业论文等都要很页才写的完  ...最近发现word有一个目录自动生成  尼玛 我是有笨啊  现在才发现  原谅我吧  喵喵~~ 首先你已经写好了一篇文章了 比如这样:
  • Word2007 如何自动生成目录的方法

    千次阅读 2013-05-31 13:01:25
    Word2007如何自动生成目录 目录通常是长文档不可缺少的部分,有了目录,用户就能很容易地知道文档中有什么内容,如何查找 内容等。Word提供了自动生成目录的功能,使目录的制作变得非常简便,而且在文档...
  • word文档添加多级目录 转载:http://jingyan.baidu.com/article/8ebacdf0c32c5f49f65cd53f.html Word如何添加一级二级标题等多级标题 有时我们写文档需要多级标题,而office默认只有三级标题,...
  • word2007自动生成目录的两种方法

    千次阅读 2013-05-31 12:26:02
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   ... 用word2007自动生成目录的两种方法 <a target="blank" r
  • 我们在职场汇总打印Word的时候,为了能够让人看懂大致的内容需要在最...生成Word目录步骤: 一、 新建Word空白页 做什么事情需要先将准备工作做好!首先我们就得需要先设置Word空白页,以备目录生成所需! 步骤:...
  • Word转PDF时自动生成书签(目录

    千次阅读 2011-12-21 15:07:24
    Word目录方便查看,后来慢慢发现PDF格式的文档阅读起来很舒服,就想着将写好了的Word文档转换成PDF格式。  我的office是2007版本的, 最先的操作是,下载了一虚拟打印机软件安装了,然后打开word,单击offic...
  • word文档如何自动生成目录

    万次阅读 热门讨论 2009-03-24 19:51:00
    Word提供了自动生成目录的功能,使目录的制作变得非常简便,而且在文档发生了改变以后,还可以利用更新目录的功能来适应文档的变化。 一、创建标题目录 Word一般是利用标题或者大纲级别来创建目录的,这对那些用...
  • 前段时间用到得导出学生信息到word,利用phpword将内容生成word,更新wordn内容到项目中下载。按照路径将phpword放到指定得目录vendor下引用就可以了。
  • Office word图表目录多个标题之间的空行无法删除

    万次阅读 多人点赞 2016-03-24 21:57:16
    生成图表目录时,发现Office word图表目录多个标题之间的空行无法删除,我是自己建的标签,比如“图1-”、“图2-”……、“表1-”、“表2-”…… 发现“图1-”、“图2-”……、“表1-”、“表2-”……之间...
  • 使用PHPWord生成word文档

    万次阅读 2018-10-09 13:06:46
    phpoffice的github:... 安装 我们使用Composer来安装PHPWord。 composer require phpoffice/phpword ...安装好phpword后,新建一php文档,引入autoload.php。 require 'vendor/autoload.php'; 实例...
  • Word生成word文档(可批量生成)

    热门讨论 2012-05-13 10:42:57
    利用Word生成word文档,简洁的代码,不一样的效果,可以批量生产word文档
  • word生成文档结构图和目录

    千次阅读 2010-07-28 18:11:00
    <br /> 实际上,段落的大纲级别在很地方都非常有用,下面我们就来详细了解一下它的作用和应用(注意:下面的操作都是在Word XP中进行的,其他版本请参考使用)。 <br />一、用大纲级别结合文档结构图...
  • 王佩丰老师OfficeExcel2010 13讲 邮件合并--引用Excel数据 学习笔记 批量生成多个邮件 利用Word发送邮件 每页显示多条记录 邮件合并后得数字格式处理 批量生成多个邮件 邮件>>开始邮件合并>>邮件合并分步向导>>信函>...
  • Word生成自定义的标题的目录,发现左侧有很空格,手动删除肯定不是良策,经过摸索,通过以下方式可以解决。 二、解决方法 鼠标左键三击目录中的一标题,右键——段落,做一下设置:缩进——左侧——0字符,...
  • 如何制作多个目录

    千次阅读 2020-01-02 17:50:01
    1 什么是多个目录 通常情况下,我们制作word文档,设置标题1,标题2,标题3,然后使用word文档的自动目录功能自动生成目录,通过“更新域”->“更新全部目录”来更新目录。但是有时候我们需要单独在目录后面...
  • word中自动生成目录

    千次阅读 2008-09-18 17:50:00
    1。选择 视图——工具栏——大纲,就可以看到有条...把鼠标点到要插入目录的地方。6。选择 插入——引用——索引和目录。7。在弹出的对话框里选择“目录”菜单,可以稍做个性化设置。比如下部的目录模版我选择的是3。8

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 191,583
精华内容 76,633
关键字:

word生成多个目录